Laravel 控制器controller 和 资源controller
位置: app\Http\Controllers ... ...
单一操作控制器: class ShowFile / public function __invoke()
Route::get('/show' ,'ShowFile', );
为单一操作控制器注册路由时,无需指定方法:
中间件:
Route::get('profile', 'UserController@show')->middleware('auth');
控制器构造方法中使用 middleware 方法,你可以很容易地将中间件指定给控制器操作。你甚至可以约束中间件只对控制器类中的某个特定方法生效:
class UserController extends Controller { /** * 创建一个新的控制器实例。 * * @return void */ public function __construct() { $this->middleware('auth'); $this->middleware('log')->only('index'); $this->middleware('subscribed')->except('store'); } }
闭包的方式使用:
$this->middleware(function ($request, $next) {
// ...
return $next($request);
});
资源型控制器:
http://d.laravel-china.org/docs/5.4/controllers#资源控制器
php artisan make:controller ArticleController --resource
Route::reource('articles' , 'ArticleController')
指定资源模型
如果你使用了路由模型绑定,并且想在资源控制器的方法中对某个模型实例做类型约束,你可以在生成控制器的时候使用 --model 选项:
php artisan make:controller PhotoController --resource --model=
控制器和对应的操作:
<?php namespace App\Http\Controllers; use App\Post; use Illuminate\Http\Request; class PostController extends Controller { /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { // 标题 $posts = Post::all(); return compact('posts'); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { // } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { // } /** * Display the specified resource. * * @param \App\Post $post * @return \Illuminate\Http\Response */ public function show(Post $post) { // } /** * Show the form for editing the specified resource. * * @param \App\Post $post * @return \Illuminate\Http\Response */ public function edit(Post $post) { // } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param \App\Post $post * @return \Illuminate\Http\Response */ public function update(Request $request, Post $post) { // } /** * Remove the specified resource from storage. * * @param \App\Post $post * @return \Illuminate\Http\Response */ public function destroy(Post $post) { // } }
资源控制器操作处理
| 动作 | URI | 操作 | 路由名称 |
|---|---|---|---|
| GET | /photos |
index | photos.index |
| GET | /photos/create |
create | photos.create |
| POST | /photos |
store | photos.store |
| GET | /photos/{photo} |
show | photos.show |
| GET | /photos/{photo}/edit |
edit | photos.edit |
| PUT/PATCH | /photos/{photo} |
update | photos.update |
| DELETE | /photos/{photo} |
destroy | photos.destroy |

浙公网安备 33010602011771号