【发布时间】:2021-01-19 01:13:47
【问题描述】:
我正在使用 Laravel 8,当我像这样编写到 __invoke 控制器的路由时:
use App\Http\Controllers\PortfolioController;
Route::get('/portfolio', 'PortfolioController')->name('portfolio');
它显示了这个错误:
路由操作无效:[PortfolioController]。
PortfolioController不可调用
所以它只能这样工作:
Route::get('/portfolio', [PortfolioController::class, '__invoke'])->name('portfolio');;
这对我来说没有意义,因为它应该找到__invoke,这是PortfolioController.php 中唯一的一个:
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class PortfolioController extends Controller
{
/**
* Handle the incoming request.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function __invoke(Request $request)
{
$portfolio = [
['title' => 'Project #1'],
['title' => 'Project #2'],
['title' => 'Project #3'],
['title' => 'Project #4'],
];
return view('portfolio',compact('portfolio'));
}
}
Laravel 8 是否忽略了__invoke 属性???
【问题讨论】:
标签: php laravel laravel-routing laravel-8 laravel-controller