2017-01-15 1 views
1

Получение сообщения об ошибке из цикла Еогеаспа Laravel в:ошибки из Еогеаспа цикла Laravel в

Invalid argument supplied for foreach() 

Мой цикл Еогеаспа является:

@foreach ($task as $tasks) 

    <td>{{$tasks->name}}</td> 

@endforeach 

Моего контроллер:

public function show($id){ 
    $task = Task::find($id); 

    return view('tasks.show')->withTask($task); 
; 
} 
+1

Умм вне темы, может быть, но почему у вас что дополнительная точка с запятой внутри вас контроллер? По теме - ваша задача '$ task' ** traversable **? 'dd ($ task)' перед внутренним лезвием foreach. – Mihailo

+0

@ Mihailo, который не был вне темы. –

+0

@ Ответ на linuxartisan правильный. Вы не можете ожидать получения коллекции из '$ task = Task :: find ($ id);'.Он просто возвращает соответствующий объект 'Задача' – Gayan

ответ

1

Я никогда не видел, чтобы установите переменную как вы, попробуйте это

0

Поменяйте Foreach переменные

@foreach ($tasks as $task) 
    <td> {{ $task->name }} </td> 
@endforeach 
0

Вы должны написать это. Это позволит решить вашу проблему

Ваш контроллер

public function show($id){ 
    $task = Task::findOrFail($id); 

    return view('tasks.show', compact('task')); 
} 

Как он получает только одно значение, так нет необходимости использовать Еогеасп. Вы должны написать это

<td>{{$tasks->name}}</td> 

Метод findOrFail возвращает только одно значение. Так что не нужно зацикливать его. Надеюсь, это решит вашу проблему.

2

Вы вводите неверный тип данных в цикл foreach.

A foreach требует: array или Collection.

Заявление

$task = Task::find($id); 

даст вам Task модель (а не Collection). Следовательно, вы не можете перебирать его.

Кроме того, поскольку вы пытаетесь отобразить Task ресурс (предполагая, что это, как вы вызываете show() функции контроллера), вам не нужно перебирать модели - как вы будете отображать атрибуты одной организации.


Просто сделай это

контроллер:

public function show($id){ 
    $task = Task::find($id); 

    return view('tasks.show', compact('task')); 
} 

По мнению:

Name: {{ $task->name }} 
// other attributes here