使用Laravel 5.6,我试图获取登录用户在我的应用程序中可能拥有的已接收链接数。
public function getReceivedLinksCount() {
return $count = App\Link::where([
['recipient_id', Auth::id()],
['sender_id', '!=', Auth::id()]
])->count();
}
到目前为止,这么好。问题不是关于那段代码,而是 我可以使用它。我想在网站的导航栏上显示这个计数器(Facebook的风格),这是我header.blade.php
中每个页面中包含的<section class="main-content-section home">
<section class="hero-section" style="background-image: url(images/home-hero@2x.jpg);"></section></section>
。
当然,我想用干净的代码来做。看起来我需要使用View Composers,但我不确定这是正确的方法,并且不确定代码的外观。
答案 0 :(得分:1)
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
view()->composer('layouts.header', function ($view) {
$view->with('variable_name', \App\Path-To-Your-Model::something());
});
}
答案 1 :(得分:0)
您可以使用View :: share()在所有视图中共享一个值,请参阅docs
例如
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="nav nav-list">
<li>
<label class="nav-header">WorkLoad</label>
<ul class="nav nav-list tree">
<li>
<label class="tree1">DME Report</label>
<ul class="tree1">
<li>
<a href="search.php">Report1</a>
<a href="search.php">Report2</a>
</li>
</ul>
</li>
<li><a href="update.php">CAMB Report</a></li>
<li><a href="index2.php">LMAB Report</a></li>
<li><a href="#">DMF Notification</a></li>
<li><a href="#">LME Forecast Report</a></li>
</ul>
</li>
</ul>
如果您想将值设置为,这种方法很有效。就个人而言,我会在'BaseController'的构造函数中设置值,该值由其他控制器扩展。这使得代码更容易被发现,因为大多数人都希望在控制器中设置视图值。如果您打算让应用程序的某个部分不需要计算该值,那么它也会更灵活。