我想知道有没有办法访问表数据而不将其从控制器传递到laravel 5中的视图?
我的数据库中有一个Options
表,用于存储我的所有项目选项。它有三个column
:
id
name
value
现在我想访问master.blade.php
文件中的每个选项值。
什么是最好的方法。
答案 0 :(得分:2)
如果您了解MVC的全部内容,那么您应该知道将变量从控制器传递到您的视图是最佳做法。视图仅用于演示,仅用于演示目的,以便分离关注点。
据说最好的方法是:
为选项创建模型,然后将其通过控制器传递给视图。
例如:
curl -XPUT localhost:9200/test5/_mapping/xxxxxx -d '{
"properties": {
... your other fields...
"Location": {
"type": "string",
"index": "not_analyzed" <--- make sure to add this
}
}
}
要在所有视图中创建变量global,请在此处查看我的答案: Laravel 5 - global Blade view variable available in all templates
答案 1 :(得分:1)
可以有多种方式可用,但是不建议将表数据直接传递到视图中。如果按照正确的方式进行操作会更好,从Controller到Model。好吧,它取决于你。这是我建议的可能方式。
方法1(您要问的问题)
在master.blade.php
文件中,您也可以执行此操作,
<?php
$v = new \App\Message(); // your model object
echo $v ->testmeee(); // its method
?>
方法2
如果您尝试全局使用表数据(意味着您希望所有页面/视图上都有选项数据),那么这是强烈建议的方式。
转到您的App/Http/Providers/AppServiceProvider.php
文件
view()->composer('*', function ($view)
{
$user = new \App\User();
$view->with('friend_new_req_count', count($user->getLoggedinUserNewFriends()));
});
现在这个带有数据的变量friend_new_req_count
将在所有视图中可用(仅在视图中)意味着您可以在视图中访问{{$friend_new_req_count}}