laravel雄辩的关系不起作用

时间:2017-09-13 00:36:21

标签: php mysql laravel eloquent frameworks

我是laravel的新手。我正在尝试在两个表之间建立关系。

我的数据库表

评论表

            $table->increments('id');
            $table->text('comment');
            $table->string('shop_name','80');
            $table->bigInteger('product_id');
            $table->timestamps();

comments_images表

        $table->increments('id');
        $table->bigInteger('comment_id');
        $table->string('images','255');
        $table->string('shop_name','80');
        $table->timestamps();

=========================

评论模型

public function images()
    {
        return $this->hasMany(Comments_images::class,'comment_id');
    }

Comments_images模型

public function comments()
    {
        return $this->belongsTo(Comment::class);
    }

我试图像这样返回相关数据

return Comments_images::find(439)->comments()->get();

return Comment::find(880)->images()->get();


return (new Comment())->images()->get();

它们都不起作用!

我该怎么办?

1 个答案:

答案 0 :(得分:1)

您是否正确使用了命名空间?例如,' App \ Comments_images' ..此外,模型最好保持单数 - 例如,'评论'或者' Comment_Image'。我提出这个问题是因为你没有保持一致,这可能导致错误。最后一件事是使用类的字符串,而不是返回实际的类。请参阅以下示例,并注意大小写,并且我没有注意到'关于某些事情..

// in Comment model
public function images()
{
    return $this->hasMany('App\Comments_Image','comment_id');
}

// in Comments_Image model
public function comment()
{
    return $this->belongsTo('App\Comment', 'id', 'comment_id');
}