如何在视图中没有模型的情况下访问表数据

时间:2016-02-17 02:48:13

标签: laravel laravel-5 laravel-blade

我想知道有没有办法访问表数据而不将其从控制器传递到laravel 5中的视图?

我的数据库中有一个Options表,用于存储我的所有项目选项。它有三个column

  1. id
  2. name
  3. value
  4. 现在我想访问master.blade.php文件中的每个选项值。 什么是最好的方法。

2 个答案:

答案 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}}