Laravel8 コントローラの使い方
Laravelにおけるコントローラクラスを理解しよう
人気のPHPフレームワークLaravelを習得しよう 第4回
https://codezine.jp/article/detail/11524
こちらで勉強しててLaravel8ではハマったのでメモします。
おそらく記事はver8以前の記述ではないかと思います。
1.実装内容(エラー版)
ページに記載通りに
①Control Class
<?php
namespace App\Http\Controllers; // (1)
use App\Http\Controllers\Controller; // (2)
class HelloBladeWithDataController extends Controller // (3)
{
public function __invoke() // (4)
{
$data["name"] = "武者小路"; // (5)
return view("helloWithData", $data); // (5)
}
}
②web.php
Route::get("/chap4/helloBladeWithData", "HelloBladeWithDataController");
③View Class
<?php
namespace App\Http\Controllers; // (1)
use App\Http\Controllers\Controller; // (2)
class HelloBladeWithDataController extends Controller // (3)
{
public function __invoke() // (4)
{
$data["name"] = "武者小路"; // (5)
return view("helloWithData", $data); // (5)
}
}
2.エラー内容
◆メッセージ
UnexpectedValueException
Invalid route action: [HelloBladeWithDataController].
3.原因
Larave8でWeb.phpの記載ルールが変わった模様。。
4.対処法
web.php
// エラー例
//Route::get("/chap4/helloBladeWithData", "HelloBladeWithDataController");
// 正解
Route::get("/chap4/helloBladeWithData", \App\Http\Controllers\HelloBladeWithDataController::class);
5.おまけ invoke使わない例
// エラー例
//Route::get("/chap4/helloBladeWithData", "HelloBladeWithDataController");
// 正解
Route::get("/chap4/helloBladeWithData", \App\Http\Controllers\HelloBladeWithDataController::class);
url | control class | control method |
---|---|---|
/chap4/helloMusha | \App\Http\Controllers\Chap4Controller | helloMusha |
/chap4/helloNakano | 同上 | helloNakano |
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
class Chap4Controller extends Controller
{
public function helloMusha() // (1)
{
$data["name"] = "武者小路"; // (2)
return view("helloWithData", $data); // (2)
}
public function helloNakano() // (3)
{
$data["name"] = "中野"; // (4)
return view("chap3.hello", $data); // (4)
}
}
Route::get("/chap4/helloMusha", [\App\Http\Controllers\Chap4Controller::class,'helloMusha']);
Route::get("/chap4/helloNakano", [\App\Http\Controllers\Chap4Controller::class,'helloNakano']);
参考元
Author And Source
この問題について(Laravel8 コントローラの使い方), 我々は、より多くの情報をここで見つけました https://qiita.com/tomo_0083/items/137d145a77367ed0232f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .