@dk-web

Верно ли начинают применять Eloquent в Laravel?

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

Есть две таблички - users (регистрации) - есть поле country, праздники по странам (countries).

Какое заклинание нужно произнести, чтобы в таблица с праздниками выглядела так:

Страна | Праздник | Количество пользователей из этой страны

Верно ли я понимаю, что:
В модели User я должен создать:

public function countries()
    {
        return $this->hasMany('App\Holidays');
    }


Также создать модель Holidays extends Model

public function users()
{
return $this->belongsTo('App\User);
}

Далее:
$data['holidays']=$holidays->get();

далее return view('holidays',['data'=>$data]

во вью:

@foreach($holidays as $holiday)
{{$holiday->country_name}} {{\App\Holidays::get()->users($holiday->country_id)->count()}}
@endforeach

Подзапутался малость... - все нравится, но никак не привыкну еще.
  • Вопрос задан
  • 223 просмотра
Решения вопроса 1
Denormalization
@Denormalization
Тут вообще ВСЁ неправильно.

- Связь называется countries, но указывает на модель Holidays (модели принято называть в единсвенном числе, а не в множественном. Т.е просто Holiday.)
- Связь называется users, но тип связи belongsTo. BelongsTo связь - это связь один-к-одному. При связи BelongsTo - не может быть много users (в данном случае).
- $data['holidays']=$holidays->get(); - это что такое? Что такое $holidays?
- Во view передается массив data, а во view используется сразу $holidays. Ошибка.
- {{\App\Holidays::get()->users($holiday->country_id)->count()}} - что должна делать эта строчка?

Весь код неправильный. Пересмотрите свое решение, и используйте форматирование кода.

-
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы