RelationNotFoundException调用未定义的关系Laravel

时间:2019-02-24 16:29:07

标签: php laravel laravel-5

enter image description here

为什么我在Laravel关系中遇到错误。我正在尝试print_r具有这种关系的值。有什么办法可以消除这个错误?

控制器:这是购物车页面功能

public function cart_page()
{
    $session_id = Session::get('session_id');
    $viewData = cartmodel::with('product_tbls')->where('session_id', $session_id)->get();
    echo "<pre>";
    print_r($viewData); 
    die;

    // return view('pages.cart', compact('viewData'));
}

产品型号:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class product_models extends Model
{
    protected $table = "product_tbls";

    public function shop_product_all()
    {
        return $this->hasMany('App\cartmodel');
    }    
}

购物车模型:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class cartmodel extends Model
{
    protected $table = "shoppingcart";

    public function shopcart_product()
    {
        return $this->belongsTo('App\product_models');
    }
}

2 个答案:

答案 0 :(得分:2)

您正在呼叫未定义的关系。我认为您正在with中传递表名,该表名应作为注释中提到的vivek_23的关系函数。因此,请尝试以下代码:

public function cart_page()
{
    $session_id = Session::get('session_id');
    $viewData = cartmodel::with('shopcart_product')->where('session_id', $session_id)->get();
    echo "<pre>";
    print_r($viewData); 
    die;

    // return view('pages.cart', compact('viewData'));
}

答案 1 :(得分:0)

修复了with('shopcart_product')之后,我只是在模型中附加了product_id

public function shopcart_product()
{
    return $this->belongsTo('App\product_models', 'product_id);
}

现在从product_tbls获取值