Laravel 8 單行為控制器

2021-07-16 17:59 更新

如果你想要定義一個只處理單個行為的控制器,你可以在控制器中放置一個 __invoke 方法:

<?php

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use App\Models\User;

class ShowProfile extends Controller
{
    /**
     * 顯示指定用戶的簡介
     *
     * @param  int  $id
     * @return \Illuminate\View\View
     */
    public function __invoke($id)
    {
        return view('user.profile', ['user' => User::findOrFail($id)]);
    }
} 

當注冊單個行為控制器的路由時不需要指名方法:

use App\Http\Controllers\ShowProfile;

Route::get('user/{id}', ShowProfile::class); 

你可以通過 Artisan 命令工具里的 make:controller 命令中的 --invokable 選項來生成一個可調(diào)用的控制器

php artisan make:controller ShowProfile --invokable 

技巧:可以使用 stub 定制 自定義控制器模板


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號