您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
Laravel基础之控制器
发布时间:2019-09-10 21:18:05编辑:雪饮阅读()
创建控制器
创建控制器
在项目根目录创建控制器如:
D:\7n\blog>php artisan make:controller TestController
Controller created successfully.
创建干净控制器
使用上面的方法创建的控制器中默认带有方法,如果要创建纯净的控制器(没有任何方法的空类),则如:
D:\7n\blog>php artisan make:controller Test2Controller --plain
Controller created successfully.
按相对路径创建控制器
使用上面的方法创建的控制器默认在app/http/controller下,如果我要在该目录下再建立一个子目录,并将控制器创建在该子目录,则如:
D:\7n\blog>php artisan make:controller Admin/Test3Controller --plain
Controller created successfully.
控制器与路由
路由到指定控制器的指定方法
路由:
Route::get('/controller/test/{id}', [
'as'=>'test',
'uses'=>'TestController@index'
]);
控制器中的指定方法:
public function index($id)
{
echo $id;
}
这里将/controller/test路由到test控制器的index方法,并且传递了id参数,则完整访问示例如:http://www.7n.com/controller/test/2
路由、控制器、中间件
Route::get('/controller/test/{id}', [
'middleware'=>'test',
'as'=>'test',
'uses'=>'TestController@index'
]);
隐式控制器
路由中定义如:
Route::controller('test2','Test2Controller');
控制器中定义如:
class Test2Controller extends Controller
{
public function getShouye(){
return view('test2index');
}
public function postPost(){
echo 'post';
}
}
那么此时我访问路由如:
http://www.7n.com/test2/shouye
就会路由至上面控制器的第一个方法,而该访问返回的 模板如 :
<form method="post" action="/test2/post">
{{csrf_field()}}
<input type="submit" value="提交"/>
</form>
则此时提交该表单又会路由至上面控制器的第二个方法。
隐式控制器的作用是更少的去修改路由文件
RESTFul风格控制器
上面创建控制器的第一种方式(即非纯净版控制器)以及一种特殊路由的组合,这种控制器就是RESTFul风格控制器
那么RESTFul控制器的路由定义如:
Route::resource('test','TestController');
RESTFul有如下局限性
也就是说该控制器只有这7个方法,且访问必须遵守上图的这些动词(method)及路径
上图中的photos是一个示例的控制器的控制器名,而根据我们这里所定义的RESTFul路由,则我们合法的访问路由如:
2、http://www.7n.com/test/create
3、
<form method="post" action="/test">
{{csrf_field()}}
<input type="submit" value="提交"/>
</form>
5、http://www.7n.com/test/id/edit
6、
<form method="post" action="/test/id">
{{csrf_field()}}
<!--(PATCH或PUT都可以)-->
<input type="hidden" name="_method" value="PATCH">
<input type="submit" value="提交"/>
</form>
7、
<form method="post" action="/test/id">
{{csrf_field()}}
<input type="hidden" name="_method" value="DELETE">
<input type="submit" value="提交"/>
</form>
关键字词:laravel,控制器
上一篇:Laravel基础之中间件
下一篇:Laravel基础之请求