如何将 url 中的参数传递给背包创建表单
Posted
技术标签:
【中文标题】如何将 url 中的参数传递给背包创建表单【英文标题】:How to pass params in url to a backpack create form 【发布时间】:2018-08-02 23:05:56 【问题描述】:我在 laravel 5.5 安装上使用背包 3.3。 我想用两个 URL 传递的值预填充两个创建表单字段。 假设您创建了一个名为 Image 的基本背包杂物。 一般可以到domain/admin/image/create查看填写表格。
但如果我在 url 中添加一两个参数,我会得到 404。 我想我应该管理路由文件(admin.php) 我试过这样:
Route::group(['prefix' => 'image/k/cid'], function()
CRUD::resource('image', 'ImageCrudController');
);
但仍然得到 404。 有什么建议? 提前致谢。
【问题讨论】:
这是一个 laravel 约束。你不能那样做。看看手册laravel.com/docs/5.5/routing#route-group-prefixes 谢谢因陀罗。我想您的评论应该是答案,而不仅仅是评论。 【参考方案1】:几乎所有字段类型都有default
选项。因此,当您定义它们时,您可以指定一个默认值。您始终可以为该默认值传递一个 GET 参数。所以你可以在你的 EntityCrudController 中有这样的东西:
$this->crud->addField[ // Text
'name' => 'title',
'label' => "Title",
'type' => 'text',
'default' => \Request::has('title')?\Request::has('title'):false, // default value
]);
然后您就可以将用户发送到yourapp/admin/entity/create?title=your+default+value
并在字段中显示该默认值。
希望对您有所帮助。干杯!
【讨论】:
嗨,克里斯蒂安。没想到可以这么用。感谢您的帮助(以及整个项目)。【参考方案2】:它对我来说更容易
http://127.0.0.1:8000/admin/resultado/create?competencia=2
$this->crud->modifyField("competencia_id",[
'label' => "Competencia",
"default"=>$this->crud->request->query->get('competencia'),
.....
【讨论】:
无法访问受保护的属性 Backpack\CRUD\app\Library\CrudPanel\CrudPanel::$request以上是关于如何将 url 中的参数传递给背包创建表单的主要内容,如果未能解决你的问题,请参考以下文章
如何将变量作为 cURL 数组中的 url 参数传递给 CURLOPT_URL
Android - 将参数传递给 Android 应用程序中的 RESTful URL