如何将 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

如何将 URL 中的数组作为参数传递给 Promise.all

如何正确地将参数传递给rails表单

将组合框作为参数传递给表单

MVC - 将整个模型作为参数传递给 JavaScript 中的 Url.Action