首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >添加字段以创建请求[适用于Laravel v4的背包]

添加字段以创建请求[适用于Laravel v4的背包]
EN

Stack Overflow用户
提问于 2019-10-03 20:03:07
回答 2查看 846关注 0票数 3

我需要在推送到Backpack的存储方法中的请求中设置一个key=>value;

在v3中,我有一个工作的存储方法,如下所示;

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public function store(StoreRequest $request) {

    $request->request->set('account_type', User::ACCOUNT_TYPE_BASIC);
    $redirect_location = parent::storeCrud($request);
    return $redirect_location;

}

但是,为了保持对仍在开发中的项目的更新,我更新到了v4,并且在尝试使用文档中推荐的traitStore或traitUpdate方法时遇到了在$request对象中添加/删除任何内容的问题。

这不起作用;

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public function store(StoreRequest $request) {

    $request->request->set('account_type', User::ACCOUNT_TYPE_BASIC);
    $redirect_location = $this->traitStore();
    return $redirect_location;

}

具体地说,通过traitStore发送到数据库的请求中没有包含'account_type‘键,它只使用(在本例中)这个Crud的setupCreateOperation()方法中定义的字段。

这里有没有我遗漏的东西,或者我需要完全管理保存/更新任何我需要操作请求的东西,而不是使用各种backpack crud方法?

EN

回答 2

Stack Overflow用户

发布于 2019-10-06 09:41:16

问题很可能是在v4中。getStrippedSaveRequest at the bttom of this class 有意删除该属性,因为它不是CRUD面板中已注册字段

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  /**
     * Returns the request without anything that might have been maliciously inserted.
     * Only specific field names that have been introduced with addField() are kept in the request.
     */
    public function getStrippedSaveRequest()
    {
        return $this->request->only($this->getAllFieldNames());
    }

您可以通过将this属性作为隐藏字段添加到CRUD面板中来修复此问题,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$this->crud->addField([
    'name' => 'account_type',
    'type' => 'hidden'
]);

现在,该字段不会显示在页面上,但它将被注册,并且在创建过程之前不会再被删除。

票数 2
EN

Stack Overflow用户

发布于 2019-11-15 13:23:34

store()不接受任何参数,因此您需要直接将属性添加到crud->请求中。

此外,您还可以动态添加字段,而不会在表单中创建隐藏字段。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public function store()
    {

        $this->crud->request->request->add('account_type', User::ACCOUNT_TYPE_BASIC);
        $this->crud->addField(['type' => 'hidden', 'name' => 'account_type']);

        $response = $this->traitStore();

        return $response;

    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58226153

复制
相关文章

相似问题

Laravel背包:坐标字段

11

创建并更新其他型号的背包laravel字段

14

存储前背包V4修改字段

10

Laravel背包基本请求验证

17

Laravel背包创建用户

116
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文