php - 带有可选参数的 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 时显示空格。
解决方案
正如 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..
}
}
推荐阅读
- javascript - 本地主机上的预检响应错误中的 Access-Control-Allow-Headers
- spring - docker和nginx部署:java.net.ConnectException:连接被拒绝(连接被拒绝)
- java - Apche POI XWPFDocument 内存泄漏
- reactjs - Next.js组件在 Netlify 上慢,在 Vercel 上快
- flutter - onUserLocationUpdated 没有进入函数
- java - 违反 Java 运行时(Java 运行时环境检测到致命错误)
- gradle - gradle android app build:使用 groovy 内联函数创建动态 archicesBaseName
- vue.js - Nuxt.js - 在页面中添加两个布局
- open-telemetry - 所有功能的 OpenTelemetry Dotnet 跟踪
- sql - PostgreSQL 从另一个表更新一个表数据