使用laravel怎么向公共模板中传值?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
1,创建service provider
php artisan make:provider ComposerServiceProvider
再把ComposerServiceProvider加到config/app.php里面
2,写view composer
public function boot()
{
view()->composer(
'app', //模板名
'App\Http\ViewComposers\MovieComposer' //方法名或者类中的方法
);
}
意思是一旦加载app.blade.php,就执行App\Http\ViewComposers\MovieComposer里的composer函数(这里之所以执行composer函数是默认的),如果你想换一个就
view()->composer('app','App\Http\ViewComposers\MovieComposer@foobar'); //自己定义的方法
这里就执行foobar函数了
在App\Http\ViewComposers\MovieComposer.php里这么写
<?php
namespace App\Http\ViewComposers;
use Illuminate\View\View;//**记得引入这个啊(因为在composer函数参数里使用了View类)**
class MovieComposer
{
public $movieList = [];
public function __construct()
{
$this->movieList = [
'Shawshank redemption',
'Forrest Gump',
];
}
public function compose(View $view)
{
$view->with('latestMovie');
}
}
3,其他
当所有模板都要,用*正则表达式
view()->composer('*', function (View $view) {
//logic goes here
});
想要指定多个view使用,用数组包起来
view()->composer(['nav', 'footer'],'App\Http\ViewComposers\MovieComposer');
或者
view()->composer(['admin.admin'], function ($view){
$column = $this->object_array(DB::table('column')->get());
foreach($column as $k=>$v){
$chid = explode(',',$v['childid']);
foreach($chid as $value){
$column[$k]['chname'][] = $this->object_array(DB::table('column_child')->where('id',$value)->first());
}
}
$view->with('columns',$column);
});
Laravel 是一套简洁、优雅的PHP Web开发框架。它可以让你从面条一样杂乱的代码中解脱出来;它可以帮你构建一个完美的网络APP,而且每行代码都可以简洁、富于表达力。
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。