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

How to access table data without model in view

我想知道有没有什么方法可以访问 table 数据而不用将其从控制器传递到 laravel 5 中查看?

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

  1. id
  2. name
  3. value

现在我想访问我的 master.blade.php 文件中的每个选项值。 最好的方法是什么。

如果您了解 MVC 的全部内容,那么您应该知道将变量从控制器传递到视图是最佳实践。 View 仅用于演示,并且只应出于关注分离的目的而用于演示目的。

话虽如此,最好的方法是:

为选项创建模型,然后通过控制器将其传递到视图。

例如:

 use App\Option;
 PageController extends Controller{

        public function __construct(Option $option){
               $this->option = $option;
         }


       public function about(){
              $options = $this->option->list('id','value');
              return view('about', $options);
       }
 }

要在所有视图中使变量成为全局变量,请在此处查看我的回答:

好吧,可以有多种方法,但不推荐将 Table 数据直接传递到视图中,如果您遵循正确的方式,意味着从控制器到模型。好吧,这取决于你。这是我建议的可能方法。

方法一(你问的是什么) 在你的 master.blade.php 文件中,你也可以这样做,

<?php
    $v = new \App\Message(); // your model object
    echo $v ->testmeee(); // its method
?>

方法二

如果您尝试在全球范围内使用您的 Table 数据(意味着您希望选项数据应该在所有 pages/views 上可用),那么强烈建议使用此方法。

转到您的 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}}