1
polymorphic relationsを使用してコメントシステムを構築していましたが、問題なく動作しているようです。ここでElequent Polymorphic Relationshipでデータを取得できません
はここ
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Posts extends Model
{
public $primaryKey = 'pid';
public $timestamps = false;
public function author()
{
return $this->belongsTo('App\User', 'p_author_id');
}
public function comments()
{
return $this->morphMany('App\Comment', 'commentable');
}
}
は、私のコメントモデル
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Comment extends Model
{
public function commentable()
{
return $this->morphTo();
}
public function user()
{
return $this->belongsTo('App\User');
}
public function posts()
{
return $this->belongsTo('App\Posts', 'pid');
}
}
今問題がある、
$pin = Posts::find($pin_id);
に関連した任意のコメントを返していないで、私の記事のモデルであります役職!著者エンティティはありますが、コメントはありません。
print_r($pin->toArray());
、
Array
(
[pid] => 17
[p_title] => Hello World?
[p_content] => How are you earth?
[p_author_id] => 4
[p_created_at] => 2016-09-15 17:18:16
[p_updated_at] => 2016-09-15 17:18:16
[comments_count] => 0
[votes] => 0
[author] => Array
(
[id] => 4
[name] => Human
[email] => [email protected]
[created_at] => 2016-09-15 17:18:00
[updated_at] => 2016-09-15 17:20:05
)
)
なぜコメントエンティティは、ここで次の配列不足している
だけを返すでしょうか?
$pin = Posts::with('comments')->find($pin_id);
し、代わりに、データベース内の自分のcommentable_type
欄の投稿ののApp \投稿を使用:ありがとう:)
返信いただきありがとうございます。それでもnullを返します。'print_r($ pin-> replies-> toArray())は空の配列' – rakibtg
dd($ pin)を試して、 'comments'属性が表示されているかどうかを確認します。 –
私はすべてを一からやり直し、コメントエンティティの名前をプロジェクトの返信に変更しましたが、すべてが同じままです。 'dd($ pin)'では、「返信」という別名のコメント属性が空であることが示されています[http://i.imgur.com/K8iMJkT.png](http://i.imgur.com/K8iMJkT)。 png) – rakibtg