如何在集合laravel中使用循环数组

时间:2018-06-18 09:08:02

标签: php laravel

我将我的数组存储在config / product.php

return [
    [
        'id' => 1,
        'title' => 'test1',
        'name' => 'name1'
    ],
    [
        'id' => 2,
        'title' => 'test2',
        'name' => 'name2'
    ],
    [
        'id' => 3,
        'title' => "test3",
        'name' => 'name3'
    ]
];

在我的控制器中,我使用pluck来显示我的标题

  $product = collect(config('products'))->pluck('title','id');
    $data['product'] = $product;
    $data['store'] = $this->store;
    return view($this->route.'.create',$data);

在我看来

{!!
    Form::select('product',$product, null, [
        'placeholder' => 'Select Product',
        'class' => [
            'form-control',
            $errors->has('product') ? 'is-invalid' : '',
        ],
    ]);
!!}

但是这样它只会显示标题如何显示名称和标题这样的东西

 Form::select('product',$product->title.$product, null, [
        'placeholder' => 'Select Product',
        'class' => [
            'form-control',
            $errors->has('product') ? 'is-invalid' : '',
        ],
    ]);

2 个答案:

答案 0 :(得分:1)

首先,改变采摘也需要这个名字。

 $product = collect(config('products'))->pluck('title', 'name', 'id');

如果它更有意义,则检索整个模型。

然后,对于表单上的每个元素,您需要进行不同的选择。

Form::select('product',$product->title, null, [
    'placeholder' => 'Select Product Title',
    'class' => [
        'form-control',
        $errors->has('product') ? 'is-invalid' : '',
    ],
]);

所以你需要有

的代码片段
$product->title and $product->name.

您还可以使用模型绑定: https://laravel.com/docs/4.2/html#form-model-binding

使用模型绑定时,不要忘记阅读这个重要部分。

  

现在,当您生成表单元素(如文本输入)时,与字段名称匹配的模型值将自动设置为字段值。因此,例如,对于名为email的文本输入,用户模型的电子邮件属性将被设置为值。但是,还有更多!如果会话闪存数据中的项目与输入名称匹配,则该项目将优先于模型的值。

因此您需要先打开模型。

echo Form::model($user, array('route' => array('user.update', $user->id)))

然后您还需要在此表单中创建正确的选择字段。 在您的示例中,它将是:

echo Form::text('title');
echo Form::text('name');

完整示例:

{{ Form::model($product, ['route' => ['product.update', $product->id]]); }}
{{ Form::text('title'); }}
{{ Form::text('name'); }}
{{ Form::close() }}

答案 1 :(得分:0)

在您的控制器中获取所有产品。

$products = collect(config('products'));

在你的刀片中

<div class="form-group">
{!! Form::Label('Product', 'Products:') !!}
<select class="form-control" name="item_id">
   @foreach($products as $product)
     <option value="{{ $product['id'] }}">{{  $product['name']." ".$product['title']   }}</option>
   @endforeach 
</select>

试试这个