Благодаря совету
D' и корректному пинку удалось решить прежнюю задачу по связке hasMany.
Но получилось так, что имеющиеся таблицы не приспособлены под Ларавел... и их нужно как-то переформатировать, чтобы связать. Буду признателен за практический совет-помощь...
Что имею:
1) Таблица-справочник - countries (названия стран)
Структура:
id | country_name
2) Таблица регистраций пользователей - users
Структура
id| name | country_id
3) Таблица с праздниками в странах - holidays
Структура
id | country_name (текстом) | date
Я думал, что свяжу users и holidays, но не тут то было... в Таблице holidays id-шник просто порядковый номер записи, а название страны хранится текстом...
Задача 1: сделать структуру таблицы holidays
id(праздника) | country_id | date
Если я правильно понимаю, то делаю обычный join для подстановки названия страны по ее country_id.
Получу примерно следующий массив объектов
id(праздника) | country_id | country_name (из countries) | date
На самом деле пока писал вопрос-запрос (час назад) понял как решать.... и удалять жалко...
вот, что у меня получилось....
public function index(Holiday $holiday)
{
$holidays = $holiday -> getHolidays();
return view('bday.index', ['holidays' => $holidays]);
}
В модели Holiday:
class Holiday extends Model
{
protected $table="holidays";
public function getHolidays() {
return $this->select(DB::raw("id,day,holiday,country_id,country_rus2,DATEDIFF(
CONCAT(
YEAR(CURDATE()),
'-', MONTH(day),
'-', DAY(day)
),
CURDATE()
) AS daysto"))
->havingRaw('daysto BETWEEN 0 AND 10')
->get();
}
public function name() {
return $this->hasOne('App\Country','rus_name','country_rus2');
}
public function users() {
return $this->hasMany('App\User','country_id','country_id');
}
}
Ну и собственно пока пустая, проинициализированная модель Country с привязкой к таблице countries
ну как-то так... снова огород?...
опять же повторюсь задачу решает.. правда слишком много запросов...
я готов к тому, что вы опять раскритикуете, но ежели и так, то как надо?)