Laravel使mulitselect数组结果成字符串

时间:2018-10-28 08:31:14

标签: php laravel

我有一个无法解决的问题:

我有一个输入很多的表格。为了保持请求的整洁,我对输入名称进行了数组排序。一切正常。唯一的问题是我无法访问多选输入的值。

我的输入字段:

<select multiple name="company[jobs][]">
    <option value="" disabled selected>Beschäftigte Berufe</option>
    <option value="ABC">ABC</option>
    <option value="DEF">DEF</option>
    <option value="GHI">GHI</option>
</select>

并且我尝试使用此php代码将其转换为字符串(每个选项用;分隔)(它是一个函数,但这并不重要)。这段代码放在company模型内部,我用$company->shortEdit($request->company);调用该方法。

方法标题如下:

public function shortEdit($request) {

    $jobs = "";
    foreach($request->jobs as $job) {
        $jobs = $jobs . ";" . $job;
    }

}

但我收到此错误:

  

试图获取非对象的属性“工作”

我该如何解决?如果我选择的不是多维数组,则代码可以正常工作。

是的,我转储了请求,并且数组company[jobs]不为空。

2 个答案:

答案 0 :(得分:1)

您输入的

namecompany,所以正确的方法是

$request->company['jobs'];

答案 1 :(得分:0)

public function shortEdit($request) {

    $jobs = "";
    foreach($request->input('company.jobs') as $job) {
        $jobs = $jobs . ";" . $job;
    }

}