在Laravel数组

时间:2016-02-17 05:38:35

标签: php laravel laravel-5

尝试在Laravel 5.2的Dropdown中从数组中显示数据。这是我的数组的样子:

enter image description here

这是另一个来自我的控制器的return数组数据的演示文稿。

enter image description here

以下是我的观点的样子,我想要创建的简单下拉列表:

<select class="form-control" name="service_id">
    <option value="">Select...</option>
    @foreach($serviceslist as $serviceli)
        <option value="{{$serviceli->id}}">
            {{$serviceli->servicename}}
        </option>                               
    @endforeach
</select>

laravel中的控制器功能如下:

public function create()
{
    $services = $this->getCategories();

    return View::make('services.create')->with('serviceslist', $services);
}

private function getCategories($parentId = 0)
{
    $categories = [];

    foreach(Services::where('service_id', $parentId)->get() as $category)
    {
        $categories[] = [
            'item'     => $category,
            'children' => $this->getCategories($category->id)
        ];
     }
     return $categories;
 }

这里我在同一个控制器中创建了一个函数getCategory()来创建数组。

当我运行代码时,我收到此错误。

Trying to get property of non-object (View: /Applications/MAMP/htdocs/laravelCRM/resources/views/services/create.blade.php)

我尝试在我的视图(刀片模板)上执行getCollection(),但它也没有用。这个问题在哪里?

谢谢! (提前)

1 个答案:

答案 0 :(得分:0)

您正在将数组传递给视图而不是Collection的实例,因此您无法在阵列上运行getCollection()

return $categories;替换为return collect($categories);

您也可以return Collection::make($categories);