Meh*_*man 2 php oop overloading laravel
我正在尝试在我的 Laravel 控制器类中使用方法重载功能。这是我的方法
# Load Customer Balance View
public function createBalance()
{
return view('customer.balance');
}
# Load Customer Balance View
public function createBalance($CustomerID)
{
// show balance of the the defined customer
}
Run Code Online (Sandbox Code Playgroud)
这是我的路线 -
// customer balance
Route::get('Customer/Balance', 'CustomerController@createBalance');
Route::get('Customer/Balance/{ID}', 'CustomerController@createBalance');
Run Code Online (Sandbox Code Playgroud)
但它显示了错误 -
FatalErrorException in CustomerController.php line 45:
Cannot redeclare App\Http\Controllers\CustomerController::createBalance()
Run Code Online (Sandbox Code Playgroud)
请问有什么解决办法吗?
考虑使用默认参数:
public function createBalance($CustomerID=null)
{
if ($CustomerID==null)
return view('customer.balance');
else
// show balance of the the defined customer
}
Run Code Online (Sandbox Code Playgroud)
并将您的路线更改为:
Route::get('Customer/Balance/{CustomerID?}', 'CustomerController@createBalance');
Run Code Online (Sandbox Code Playgroud)
加个“?” 在参数之后,Laravel 知道您正在传递一个可选参数。