Laravel Queries / Controller Edits

时间:2017-02-13 23:15:19

标签: sql laravel

所以我对Laravel来说很新,而且我花了一整天的时间来浏览各种文档,但我仍然坚持查询在实际应用程序中的工作方式。现在,我正在尝试在我的数据库中显示一些数据,然后我查看了查询构建器,以便我现在就在哪里。我还使用基于CRUD的管理面板进入数据库。由于它是基于CRUD的,它已经创建了模型和控制器,所以我想知道我是否需要编辑这些文件以使其工作。以下是public function index()目前使用的内容(使用Laraadmin):

    $module = Module::get('Events');

    if(Module::hasAccess($module->id)) {
        return View('la.events.index', [
            'show_actions' => $this->show_action,
            'listing_cols' => $this->listing_cols,
            'module' => $module
        ]);
    } else {
        return redirect(config('laraadmin.adminRoute')."/");
    }`

显然,我正在尝试将此Events表中的一些数据显示到我的刀片视图中。从我正在阅读的内容中,我理解(或者我认为)它会与此类似:

foreach ($module as $module) {
   echo $module->id;
}

但是,我不断得到一个错误,即我在循环中传递的任何变量都是未定义的,尽管我认为它在控制器中。现在我的模型也只是返回视图。非常感谢任何帮助,甚至只是解释与Laravel中的查询的关系。谢谢!

2 个答案:

答案 0 :(得分:0)

您似乎正在返回一个不存在的视图。如果你现在拥有的内容是正确的,那么它会寻找resources/views/la/events/index.blade.php尝试用此替换return view行:

return view('events', [ ... rest of your variables ]); 

只是旁注,在foreach声明中,最好使用两个单独的变量名称......所以类似于:

foreach ($module as $element) { ... 

答案 1 :(得分:0)

发生这种情况时要检查的一些事项:

  1. 将模块更改为已知阵列。这将测试您的数据阵列是否设置正确:

    'module' => [ '1', '2', '3' ], // previously $module

  2. 在刀片中,现在编写一个简单的循环,例如:

    @foreach ($module as $m)
      {{ $m }}
    @endforeach
    

    如果这个版本有效,那么你就知道你的$ module变量了。

    1. 如果上述操作无效,请尝试简化您的查看请求(暂时):

      view('foo', ['a' => 555]);

    2. 然后在foo.blade.php中,只需:

      hello {{ a }}    
      

      修改

      1. 如果所有这些看起来都是正确的,那么提取的数据可能是错误的(因此它不是视图问题)。试试$module = Module::all();