为什么我在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');
}
}
答案 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
获取值