duanlan3598 2017-01-04 22:24
浏览 31
已采纳

如何将不同的参数发送到同一个函数? (laravel 5.3)

My view is like this :

...
<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
...

My routes is like this :

Route::get('users/create/{year}', 'UserController@create')
     ->name('users.create.year');

Route::get('users/create/{display}/{year}', 'UserController@create')
     ->name('users.create.display.year');

My controller is like this :

public function create($display = null, $year)
{
    echo $display;
    echo $year;die();
    ...
}

When I call url like this : http://localhost/mysystem/public/users/create/2016

There exist error like this :

 1/1 ErrorException in UserController.php line 314: 
 Missing argument 2 for App\Http\Controllers\UserController::create() 

When I call url like this : http://localhost/mysystem/public/users/create/14144499452111901/2016` The result is like this :

14144499452111901
2016

Why when I call a url with one parameter there is an error?

  • 写回答

3条回答 默认 最新

  • duandou8457 2017-01-04 22:40
    关注

    You should use optional parameters feature:

    Route::get('users/create/{year}/{display?}', 'UserController@create')->name('users.create.year');
    

    Use just one method, but with optional parameter:

    public function create($year, $display = null)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 AT89C51控制8位八段数码管显示时钟。
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口