所以我对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中的查询的关系。谢谢!
答案 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)
发生这种情况时要检查的一些事项:
将模块更改为已知阵列。这将测试您的数据阵列是否设置正确:
'module' => [ '1', '2', '3' ], // previously $module
在刀片中,现在编写一个简单的循环,例如:
@foreach ($module as $m)
{{ $m }}
@endforeach
如果这个版本有效,那么你就知道你的$ module变量了。
如果上述操作无效,请尝试简化您的查看请求(暂时):
view('foo', ['a' => 555]);
然后在foo.blade.php
中,只需:
hello {{ a }}
修改强>
$module = Module::all();