我的观点是这样的:
switch (myRover.direction) {
case 'N':
myRover.direction = myRoverDirections[3]
break;
我的路线是这样的:
...
<a class="btn btn-primary pull-right" style="margin-top: -10px;margin-bottom: 5px" href="{!! route('users.create.year', [$year]) !!}">
Add New
</a>
...
...
@foreach($testArray as $key)
...
<a class="btn btn-primary btn-xs" href="{!! route('users.create.display.year', [$key['display'], $year]) !!}">
<i class="glyphicon glyphicon-plus"></i>
</a>
...
@endforeach
...
我的控制器是这样的:
Route::get('users/create/{year}', 'UserController@create')
->name('users.create.year');
Route::get('users/create/{display}/{year}', 'UserController@create')
->name('users.create.display.year');
当我这样调用网址时:public function create($display = null, $year)
{
echo $display;
echo $year;die();
...
}
存在这样的错误:
http://localhost/mysystem/public/users/create/2016
当我这样称呼网址时: 1/1 ErrorException in UserController.php line 314:
Missing argument 2 for App\Http\Controllers\UserController::create()
/ 14144499452111901 / 2016`
结果是这样的:
http://localhost/mysystem/public/users/create
为什么当我使用一个参数调用url时出现错误?
答案 0 :(得分:3)
您应该使用optional parameters功能:
Route::get('users/create/{year}/{display?}', 'UserController@create')->name('users.create.year');
只使用一种方法,但使用可选参数:
public function create($year, $display = null)
答案 1 :(得分:0)
Route::get('users/create/{year}', 'UserController@create')
->name('users.create.year');
Route::get('users/create/{display}/{year}', 'UserController@create')
->name('users.create.display.year');
您在这里定义了两条路线,只有一个控制器。
public function create($display = null, $year)
{
echo $display;
echo $year;die();
...
}
所以当你做这样的事情http://localhost/mysystem/public/users/create/2016
它发送给具有多个参数的那个。
解决方案是创建两个控制器,每个路由一个
public function create($display = null, $year)
{
echo $display;
echo $year;die();
...
}
public function create( $year)
{
echo $display;
echo $year;die();
...
}
答案 2 :(得分:0)
您也可以在控制器中使用Request对象
public function create(Request $request)
{
$request->year;
...
}