在 laravel 5 的视图中使用模型函数

Using Model Functions in Views in laravel 5

我有一个项目,其中有相当数量的 Eloquent 模型, 在大多数页面上,我需要使用多个模型及其函数来正确构建页面。

我习惯了这种语法:

use App\CustomFolder\CustomModel;
CustomModel::all(); // or whatever function / data I need

尽管如前所述,我现在有大约 27 个模型,而且每个页面上都需要多个模型。所以我创建了一个 blade 布局(母版页),其中我 link 所有这些模型,但现在似乎无法从视图本身调用这些模型。

那我怎么办:

您实际上应该在控制器方法中获取所有资源,而不是在您的视图中。这违背了 MVC 模式 Laravel 和 Eloquent 都使用。

在控制器中,您可以使用正常语法添加和使用它们:

use App\CustomFolder\CustomModel; CustomModel::all(); // or whatever function / data I need

在 Laravel here 中了解有关使用控制器的更多信息。

编辑

为了不必总是在每个控制器中键入 Use Path/To/Model,您可以将模型添加到 config/app.php 中的 aliases。这样你就可以添加例如 'CustomModel' => App\Path\To\CustomModel 并在你的控制器方法中使用它作为 \CustomModel.

尽管这是一种不好的做法并且会使 MVC 无效。但是您可以在 php 标签或 blade 中的 {{}} 大括号内这样做。 \App\Models\ModelName::get();