Php 拉威尔全局环

Php 拉威尔全局环,php,loops,laravel,global,Php,Loops,Laravel,Global,我正在尝试在我的视图中全局循环某些内容(警报) 在我看来,我想这样做: @foreach($alert as $alert) <div class="alert alert-{{ $alert->type }}" role="alert">{{ $alert->message }}</div> @endforeach 然后我得到这个输出:array(0){} 什么不是我想要的 我怎样才能以干净和良好的方式解决这个问题 最亲切的问候 Robin您的代码存在一些

我正在尝试在我的视图中全局循环某些内容(警报)

在我看来,我想这样做:

@foreach($alert as $alert)
<div class="alert alert-{{ $alert->type }}" role="alert">{{ $alert->message }}</div>
@endforeach
然后我得到这个输出:
array(0){}
什么不是我想要的

我怎样才能以干净和良好的方式解决这个问题

最亲切的问候


Robin

您的代码存在一些问题。这一行是最重要的:

$alert = array();
这里的意思是“对于
$get\u alerts
中的每个结果,将
$alerts
设置为空数组”。这就是为什么会得到输出
数组(0){}
——它是一个空数组

另一个更大的问题是这一行:

@foreach($alert as $alert)
这里应该使用两个不同的变量名,因为循环的每次迭代都会将某些内容分配给
$alert
,如果它们的名称相同,则会覆盖第一个数组。典型且简单的解决方法是:

@foreach($alerts as $alert)
现在,他们不会互相凌驾

您还有方法链接的这一部分:
->whereNull('deleted_at')
。如果您使用软删除,实际上您不必这样做,因为Laravel会自动为您的用户分类已删除(“垃圾”)的项目。(但如果不使用软删除,可以忽略此段落。)

而Blade的
@foreach
实际上是对开箱即用的有说服力的收藏品。因此,您的代码可以进行大量清理,如下所示:

public function __construct() { 
    $alerts = Alert::orderBy('id', 'DESC')->whereNull('deleted_at')->get();
    return View::share('alerts', $alerts);
}

[...]

@foreach($alerts as $alert)
<div class="alert alert-{{ $alert->type }}" role="alert">{{ $alert->message }}</div>
@endforeach
public function\uuuu construct(){
$alerts=Alert::orderBy('id','DESC')->whereNull('deleted_at')->get();
返回视图::共享('alerts',$alerts);
}
[...]
@foreach($alert作为$alert)
{{$alert->message}
@endforeach

谢谢!这解决了我的问题!。
public function __construct() { 
    $alerts = Alert::orderBy('id', 'DESC')->whereNull('deleted_at')->get();
    return View::share('alerts', $alerts);
}

[...]

@foreach($alerts as $alert)
<div class="alert alert-{{ $alert->type }}" role="alert">{{ $alert->message }}</div>
@endforeach