【问题标题】:Custom request if field name are different? Laravel如果字段名称不同,则自定义请求?拉拉维尔
【发布时间】:2020-04-11 22:52:36
【问题描述】:

使用 Laravel 7 更新了主题,因为问题现在与 Radio 类型有关

表名用户。有“用户名”列

我的输入框:

<form action="{{ route('users.store') }}" method="post">
<input type="text" name="username" value="">
<label class="btn btn-sm btn-secondary active">
<input type="radio" name="paki" value="1" checked> Active
</label>
<label class="btn btn-sm btn-secondary">
<input type="radio" name="paki" value="2"> Inactive
</label>
 <button type="submit">Add User</button>
</form>    

在控制器中尝试:

public function store(Request $req)
{
    $req->validate([
    'username' => 'required|unique:users',
    ]);
    $users = new Users();
    $users->username = $req->username;       
    $users->status = $req->paki;
    $users->save();        
    return redirect()->route('list.users');
}

dd($req->all());

`array:3 [▼
  "_token" => "cnLMS8sYWOCZbP24QhQ3QoHXLZguyRUk0Cx8U1Tj"
  "username" => "jhon"  
  "paki" => "1"
]`

【问题讨论】:

  • $users 中有什么?显示完整代码而不是单行
  • 我们需要看更多的代码。如果 $users 是 User:class 的一个实例,这应该可以工作,如果没有更多信息就帮不了你......
  • 你不能有两个同名的元素,我想你可以,把名字paki改成pakiRadio
  • 在您编辑后更改了整个问题,在更新之前您有一个名为“paki”的文本输入,您对单选按钮的新问题是否采用相同的形式?因为如果是这样,您的问题是您有多个具有相同名称“paki”的输入,因此您的控制器将始终只检索其中一个。
  • @user8625968 你的问题到底是什么?

标签: php laravel laravel-7


【解决方案1】:

对于这个名为“paki”的 HTML;

<input type="text" name="paki">

您可以使用inputget 来获取请求值。

$users->username = $request->input('paki');
//or
$users->username = $request->get('paki');

收音机

            <label class="btn btn-sm btn-secondary active">
                <input type="radio" name="pakiRadio" value="1" checked> Active
            </label>
            <label class="btn btn-sm btn-secondary">
                <input type="radio" name="pakiRadio" value="2"> Inactive
            </label>
$users->status = $request->input('pakiRadio');
//or
$users->status = $request->get('pakiRadio');

【讨论】:

  • 这与 OP 已经尝试过的有什么不同?这只是 $users-&gt;username = $request-&gt;paki; 的另一种方式。
  • @RobertKujawa 因为您可以使用inputget 获取帖子值,所以您不能直接访问request 上的属性
  • 您可以像 OP 一样“通过动态属性检索输入”,它在文档 here 中。
  • @user8625968 是一样的。但您不能将 name 属性与输入相同。
【解决方案2】:

您应该能够通过以下方式访问您的字段: $request-&gt;paki 但要小心,paki 将是一个单一的值,而您还没有发布 $users 的定义,但作为复数,我猜这是一个列表而不是一个值。

【讨论】:

  • users 是表名。
【解决方案3】:

在 Laravel 6//7 中 短格式有效,不需要包含input/get

$users->username = $request->('paki');

我只是解决问题composer dump-autoload

【讨论】:

    猜你喜欢
    • 2014-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-07
    • 2016-02-19
    • 2018-05-29
    • 2019-05-26
    • 2020-05-11
    相关资源
    最近更新 更多