首页 > 解决方案 > 带有可选参数的 Laravel 函数

问题描述

在我的 Web 文件中,我有一个接受 $id 作为要传递给 PagesController 中的函数的值的路由。但是,即使 $id 未传递给函数,我也希望函数仍然执行并显示预期的形式。

web.php 文件

Route::get('/request/{id}', 'PagesController@makeRequest');

PagesController.php 文件

public function makeRequest($id)
{
   if(!empty($id)){
      $target = Partner::find($id);
   }
   return view('pages.makeRequest')->with('target', $target);
}

makeRequest.blade.php

<input type="text" class="form-control" value="{{$target->inst_name}}" required disabled>  

我希望页面在提供时显示带有 $id 的数据库的详细信息,或者在未提供 $id 时显示空格。

标签: phplaravel

解决方案


正如 Laravel 文档所述:使用这样的可选参数

Route::get('/request/{id?}', 'PagesController@makeRequest'); //Optional parameter

控制器

public function makeRequest($id = null)
    {
        if(!empty($id)){
            $target = User::find($id);
            return view('pages.makeRequest')->with('target', $target); 
        } else {
            return view('pageslist'); ///set default list..
        }        
    }

推荐阅读