Laravel:为foreach提供了无效的参数

时间:2018-09-11 13:50:44

标签: laravel foreach

为foreach()提供的参数无效

我的控制器功能

use App\Tag

public function index()
{
    //
    $tags = Tag::all();
    return view('tags.index')->withTags('$tags');
}

索引查看刀片

@foreach ($tags as $tag)
<tr>
<th>{{ $tag->id }}</th>
<td>
<a href="{{route('tags.show', $tag->id)}}">{{ $tag- >name }}</a>
</td>
</tr>
@endforeach

2 个答案:

答案 0 :(得分:3)

只需删除单引号和Tags中的withTags('$tags')即可:

public function index()
{
    $tags = Tag::all();
    return view('tags.index')->with('tags', $tags);
}

或者您可以使用compact来完成Salman所说的话。

答案 1 :(得分:3)

使用 compact ,尝试以下代码会更轻松,更简单:

public function index()
{
    //
    $tags = Tag::all();
    return view('tags.index',compact('tags'));
}

如果您想使用,请尝试以下代码:

public function index()
    {
        //
        $tags = Tag::all();
        return view('tags.index')->with('tags',$tags);
    }

您可以在刀片中做您想做的事,也可以使用 forelse 尝试以下代码:

@forelse($tags as $tag)
<tr>
<th>{{ $tag->id }}</th>
<td>
<a href="{{route('tags.show', $tag->id)}}">{{ $tag- >name }}</a>
</td>
</tr>
@empty
<div class='alert alert-danger'>
  No tags..!
</div>
@endforelse