Laravel Не работает hasMany() в __call()

StalkerClasses

Новичок
Вариант первый - работает:

PHP:
class Type extends Model
{
// Выводит список блогов данного типа
    public function Blogs(){
        return $this->hasMany(\Blog::class, 'type_id', 'id');
    }
}
Вариант второй - НЕ работает именно hasMany, хотя все остальные связи работают таким образом:
PHP:
class Type extends Model
{
    public function __call($name, $arguments)
    {
        // Выводит список блогов данного типа
        if($name == 'Blogs'){
            return $this->hasMany(\Blog::class, 'type_id', 'id');
        }
     
        return parent::__call($name, $arguments);
    }
}
С чем это может быть связано?
 

StalkerClasses

Новичок
Также не могу понять можно ли в ларавель создать связь без belongsTo вида:

Страна -> hasMany (City, country_id)
Город -> hasOne(County)
 

StalkerClasses

Новичок
И правильно же понимаю что нет разницы как делать направление связи
->hasMany
->belongsTo

или наоборот
->belongsTo
->hasMany
 

AmdY

Пью пиво
Команда форума
Зачем тебе перегружать __call?
И правильно же понимаю что нет разницы как делать направление связи
->hasMany
->belongsTo

или наоборот
->belongsTo
->hasMany
Одна страна может иметь много городов, но один город не может быть в нескольких странах. Разница огромная.

Ну почему ты не сядешь и не разберёшься, не прочитаешь документацию полностью? Нет, надо неразобравшись писать гавнокод. Дзякуй Богу, што ты не лекар.
 

StalkerClasses

Новичок
Поменял перменную public на protected и все заработало
Мне динамические связи нужны.
 
Сверху