Как автоматически загружать модели в laravel?

Я пытаюсь автоматически загружать модели в laravel 9,

Я хочу использовать модели в своих блейд-файлах, но когда я использую модель, я должен импортировать ее, написав «use App\Models\User», а после я могу написать «{{ User::all() }}», но если я сначала не импортирую модель, это дает мне эту ошибку: « Class "User" not found", поэтому я хочу написать "{{ User::all() }}" без предварительного импорта модели (без написания этого: "use App\Models\User") в файле блейда. Как я могу автоматически загрузить их?

use App\Models\User автоматически загружает модель.

Robert 07.02.2023 19:52

См. stackoverflow.com/questions/28657276/… -- Что вам действительно нужно, так это псевдонимы, которые можно добавить в config/app.php

aynber 07.02.2023 19:56

«Я хочу использовать модели в своих блейд-файлах» — соглашение MVC предполагает, что вам не следует использовать модели в представлениях. Поэтому, хотя вы можете добавить их в config/app.php's 'alises' => [...] для этого, пересмотрите то, чего вы пытаетесь достичь, и посмотрите, не более ли уместно использовать $users = User::all(); в контроллере, а затем передавать $users в представление через view('example', ['users' => $users]) (или подобное; много параметры синтаксиса для этого)

Tim Lewis 07.02.2023 20:27

Привет, я знаю, что вы пытаетесь упростить кодирование, но обратите внимание, что автозагрузка означает, что она загружается, даже если вы ее не использовали, поэтому ваше приложение использует больше ресурсов для каждого запроса.

Charlie 08.02.2023 04:20

@Чарли прав, не делайте псевдонимы для моделей в app.php

Surya prakash Patel 10.02.2023 16:40
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
5
84
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Как и во всех других версиях Laravel, например:

$query = User::with("posts");
$users = $query->get();

Где класс User должен определить, что означает «сообщения», например:

use \App\Post;

// ...

public function posts()
{
    return $this->hasMany(Post::class, 'user_id');
}

Обратите внимание, что выше я запрашиваю модель «Пользователь» и автоматически загружаю любую связанную модель «Пост».

ВТФ…………………..…..?

dbf 07.02.2023 20:57
Ответ принят как подходящий

Вы можете вручную создавать псевдонимы в config/app.php.

'aliases' => Facade::defaultAliases()->merge([
    'User' => App\Models\User::class,
    ... your other models here
])->toArray(),

Это сделает User доступным без необходимости вручную писать App\Models\User каждый раз в представлении и везде.


Так же, как вы можете написать

use DB;

DB::table('users')->get();

вместо

use Illuminate\Support\Facades\DB;

DB::table('users')->get();

Вы сможете писать use User вместо use App\Models\User (хотя я не рекомендую вам этого делать).

Другие вопросы по теме