我在VerificationController中添加了show函式,但我顯示了以下錯誤
AppHttpControllersAuthVerificationController::show(IlluminateHttpRequest $request)的宣告應該與AppHttpControllersController::show() 兼容。
show函式:
public function show(Request $request)
{
return $request->user()-> hasVerifiedEmail()
? redirect($this->redirectPath()
: view('verification.notice', [
'pageTitle' => __('帳戶驗證')
]);
}
uj5u.com熱心網友回復:
由于你可能是在擴展BaseController,你需要尊重相同的引數。
但是在你的案例中,我想,最好的方法是創建一個中間件來驗證路由。
https://laravel.com/docs/8.x/controllers#basic-controllers https://laravel.com/docs/8.x/middleware#introduction
uj5u.com熱心網友回復:
問題在于,你在VerificationController中定義了帶引數(Request $request)的show()方法,但在基礎控制器(AppHttpControllersController)中卻有同樣的show()方法,但沒有引數。
只有在引數相同的情況下,你才能在擴展類中創建相同的方法
。所以要解決這個問題,你可以這樣做:
在App/Http/Controllers/Controller的show()方法中添加(Request $request)引數
在VerificationController::show()中移除(Request $request),但你可以在建構式中定義引數request
<?php
namespace AppHttpControllersAuth。
使用 AppHttpControllersController。
使用 IlluminateHttpRequest。
class VerificationController extends Controller
{
public $request;
public function __construct(Request $request)
{
parent::__construct(); //optional. Only if the base controller have a constructor .
$this->request = $request; //將可以從下面的所有方法訪問。
}
//你不需要再定義Request $request,現在也不會發生沖突了! //你不需要再定義Request $request。
public function show()
{
//you can access $request like usual by calling the public $this-> request
$request = $this-> request;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/324221.html
標籤:
上一篇:如何防止Laravel應用程式的檔案夾被搜索引擎收錄
下一篇:如何將整數值轉換成時間戳格式?
