Чтение полиморфного отношения
Если вы создаете отношения по своим полям, то нужно делать так:
PHP
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Comment extends Model { /** * Получить все модели, обладающие commentable. */ public function commentable() { return $this->morphTo('', 'tag', 'id_pn'); } }
class Post extends Model { /** * Получить все комментарии статьи. */ public function comments() { return $this->morphMany('App\Comment', '', 'tag', 'id_pn'); } }
class Video extends Model { /** * Получить все комментарии видео. */ public function comments() { return $this->morphMany('App\Comment', '', 'tag', 'id_pn'); } }
Т.е в полиморфной модели в метод morphTo нужно передать теже $name, $type, $id, что и у владельцев полиморфного отношения.
P.S: Сам с толкнулся с такой проблемой, но решения или пояснения не нашел, поэтому решил оставить тут комментрай, вдруг кому пригодиться...
Чтение полиморфного отношения
Если вы создаете отношения по своим полям, то нужно делать так:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Comment extends Model
{
/**
* Получить все модели, обладающие commentable.
*/
public function commentable()
{
return $this->morphTo('', 'tag', 'id_pn');
}
}
class Post extends Model
{
/**
* Получить все комментарии статьи.
*/
public function comments()
{
return $this->morphMany('App\Comment', '', 'tag', 'id_pn');
}
}
class Video extends Model
{
/**
* Получить все комментарии видео.
*/
public function comments()
{
return $this->morphMany('App\Comment', '', 'tag', 'id_pn');
}
}
Т.е в полиморфной модели в метод morphTo нужно передать теже $name, $type, $id, что и у владельцев полиморфного отношения.
P.S: Сам с толкнулся с такой проблемой, но решения или пояснения не нашел, поэтому решил оставить тут комментрай, вдруг кому пригодиться...