我有一个包含交易数据的交易表,如:id|user_id|amount|payment_method_id|...
payment_methods 表包含不同的付款方式。表格设计为:id|name
表的内容如下:
1 |贝宝
2 |信用卡。
现在我想显示交易记录。这很好,但是laravel总是显示付款方式的编号,而不是名称。我的交易模型如下:
public function payment_method_id()
{
return $this->hasOne('App\Payment_Method', 'id', 'tpayment_method_id');
}
始终显示数字,但不显示付款方式的正确名称。哪里是我的错?
答案 0 :(得分:1)
你应该这样定义关系:
public function paymentMethod()
{
return $this->belongsTo('App\Payment_Method', 'payment_method_id');
}
现在您可以通过以下方式显示付款方式名称:
echo $transaction->paymentMethod->name;
在您的示例中,您使用的是与列相同的关系名称,而您使用hasOne
关系代替belongsTo
答案 1 :(得分:0)
假设您有一个Transaction
模型,其中包含payment_method_id()
方法,用于定义transaction
和payment method
表之间的关系。现在,您可以从任何事务对象访问所有columns/property
。应该是类似的事情:
$transection->payment_method_id->name;