在 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 所有这些模型,但现在似乎无法从视图本身调用这些模型。
那我怎么办:
- 使这些模型在全球可用(首选)
- 使我在布局中调用 (
use Model;
) 的模型在我的视图中也可用。
您实际上应该在控制器方法中获取所有资源,而不是在您的视图中。这违背了 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();
我有一个项目,其中有相当数量的 Eloquent 模型, 在大多数页面上,我需要使用多个模型及其函数来正确构建页面。
我习惯了这种语法:
use App\CustomFolder\CustomModel;
CustomModel::all(); // or whatever function / data I need
尽管如前所述,我现在有大约 27 个模型,而且每个页面上都需要多个模型。所以我创建了一个 blade 布局(母版页),其中我 link 所有这些模型,但现在似乎无法从视图本身调用这些模型。
那我怎么办:
- 使这些模型在全球可用(首选)
- 使我在布局中调用 (
use Model;
) 的模型在我的视图中也可用。
您实际上应该在控制器方法中获取所有资源,而不是在您的视图中。这违背了 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();