Php 来自laravel'的错误;s foreach循环
从Laravel的foreach循环获取错误消息:Php 来自laravel'的错误;s foreach循环,php,laravel,foreach,Php,Laravel,Foreach,从Laravel的foreach循环获取错误消息: Invalid argument supplied for foreach() 我的foreach循环是: @foreach ($task as $tasks) <td>{{$tasks->name}}</td> @endforeach 我从没见过像你这样设置变量,试试这个 return view('tasks.show')->with('task', $task); 反转foreach
Invalid argument supplied for foreach()
我的foreach循环是:
@foreach ($task as $tasks)
<td>{{$tasks->name}}</td>
@endforeach
我从没见过像你这样设置变量,试试这个
return view('tasks.show')->with('task', $task);
反转foreach变量
@foreach ($tasks as $task)
<td> {{ $task->name }} </td>
@endforeach
@foreach($tasks作为$task)
{{$task->name}
@endforeach
你应该写这个。这会解决你的问题
你的控制器
public function show($id){
$task = Task::findOrFail($id);
return view('tasks.show', compact('task'));
}
因为它只得到一个值,所以不需要使用foreach。你应该写这个
<td>{{$tasks->name}}</td>
{{$tasks->name}
findOrFail方法只返回一个值。所以不需要循环它。
希望这能解决您的问题。您给
foreach
循环提供了错误的数据类型
foreach
需要数组
或集合
声明
$task = Task::find($id);
将为您提供一个任务
模型(不是集合
)。
因此,不能对其进行迭代
此外,由于您正试图显示任务
资源(假设这是在调用控制器的show()
函数时),因此不需要迭代模型,因为您将显示单个实体的属性
就这么做吧 控制器:
public function show($id){
$task = Task::find($id);
return view('tasks.show', compact('task'));
}
Name: {{ $task->name }}
// other attributes here
在视图中:
public function show($id){
$task = Task::find($id);
return view('tasks.show', compact('task'));
}
Name: {{ $task->name }}
// other attributes here
嗯,也许有点离题了,但为什么你的控制器里有那个额外的分号呢?您的
$task
是否可遍历<代码>dd($task)在foreach内部刀片之前。@Mihailo这不是离题的mate。@linuxartisan的答案是正确的。您不能期望从$task=task::find($id)接收集合代码>。它只返回匹配的任务
object@steven如果你已经解决了这个问题,请接受帮助你的答案;这样问题就不会一直悬而未决了。