如何将数组从控制器传递到laravel视图并在子视图中访问它们

时间:2017-09-11 11:18:54

标签: laravel laravel-5 blade laravel-blade

我正在尝试将一系列品牌传递给subview banner.blade.php,但我在banner.blade.php中获得$ brand未定义。在哪里我做错了

我的控制器视图

public function bannerView()
{
    // \LOG::Info('getBrands');
    $brands = Brands::all();
    return view('home', compact('brands'));
}

home.blade.php

@section('banner')
    @include("layouts/partials/banner")
@endsection

banner.blade.php

<select name="brand" id="branddrop" class="form-control">

    <option value="" selected="selected">Select Model*</option>
    @foreach ($brands as $brand)
        <option value="{{ $brand }}">{{ $brand->name }}</option>
    @endforeach

</select>

4 个答案:

答案 0 :(得分:0)

您可以在include语句中传递变量:

@include("layouts/partials/banner", ['brands' => $brands]);

答案 1 :(得分:0)

您需要为您的值传递一列,例如

select name="brand" id="branddrop" class="form-control">
                                <option value="" selected="selected">Select Model*</option>
                                @foreach ($brands as $brand)
                                    <option value="{{ $brand->id }}">{{ $brand->name }}</option>
                                @endforeach
                            </select>
你知道吗?

答案 2 :(得分:0)

首先您需要检查您是否获得了家用刀片中的品牌。您可以通过以下方式测试:

<?php print_r($brands) ?>

如果你得到这个,你可以在子视图中使用品牌,如果不是这意味着你没有以正确的方式传递变量/数组。

答案 3 :(得分:0)

我在路由这段代码时犯了错误是正确的。三江源