Рубрики
Uncategorized

Красноречивая модель Laravel получает указанный столбец

Автор оригинала: David Wong.

При использовании ларавель “некоторые – красноречиво, одна из операций, с которыми мы часто сталкиваемся, заключается в извлечении некоторых свойств в модели, которые соответствуют определенным столбцам таблицы в базе данных.

Если вы используете фасад БД для написания построителя запросов, вам нужно только вызвать метод select() по цепочке:

    $users = DB::table('users')->select('name', 'email as user_email')->get();

Есть два способа использовать красноречивые:

//1. Use Select ()
    $users = User::select(['name'])->get();
    
    //2. Directly pass the column name array as a parameter to all() / get() / find() and other methods
    $users = User::all(['name']);
    $admin_users = User::where('role', 'admin')->get(['id', 'name']);
    $user = User::find($user_id, ['name']);

Используйте тот же принцип в соответствующем запросе:

$posts = User::find($user_id)->posts()->select(['title'])->get();
    $posts = User::find($user_id)->posts()->get(['title', 'description']);
    //Note that the dynamic attribute ("> posts") cannot be used to call the association relationship, but the association relationship method ("> posts()) needs to be used.