Laravel从关系中获取数据并在视图中显示
简单地说,这段代码就是我的获取数据解决方案,这个模型是关系,我的结果是真实的,但是我无法从关系中获取数据并显示在视图上,Laravel从关系中获取数据并在视图中显示
$data = UserAccountNumber::with(['currency_type'])->orderBy('id', 'DESC')->paginate(50);
以下结果这个代码回报:
LengthAwarePaginator {#585 ▼
#total: 2
#lastPage: 1
#items: Collection {#601 ▼
#items: array:2 [▼
0 => UserAccountNumber {#588 ▶}
1 => UserAccountNumber {#589 ▼
#table: "user_account_numbers"
#guarded: array:1 [▶]
#connection: null
#primaryKey: "id"
#perPage: 15
+incrementing: true
+timestamps: true
#attributes: array:9 [▼
"id" => 2
"user_id" => 17
"account_number" => "24234234"
"card_number" => "242423423"
"sheba" => "asdasdad"
"currency_type" => 5
"status" => 0
"created_at" => "2016-05-13 10:55:00"
"updated_at" => "2016-05-13 10:55:00"
]
#original: array:9 [▶]
#relations: array:1 [▼
"currency_type" => CurrencyType {#603 ▼
#table: "currency_type"
#fillable: array:3 [▶]
#dates: array:1 [▶]
#connection: null
#primaryKey: "id"
#perPage: 15
+incrementing: true
+timestamps: true
#attributes: array:7 [▼
"id" => 5
"user_id" => 1
"currency_type" => "EURO"
"currency_symbol" => "EUR"
"created_at" => "2016-04-17 12:07:47"
"updated_at" => "2016-04-17 12:07:47"
"deleted_at" => null
]
查看:
鉴于我能得到UserAccountNumber
数据,但我不能让currency_type
,并表明对视图:
<table class='table-style' cellpadding='0' cellspacing='0'>
@foreach ($data as $key=>$contents)
<tr>
<td>{{$contents->card_number}}</td>
<td>{{$contents->card_number}}</td>
<td>{{$contents->seba}}</td>
<td>{{$contents->created_at}}</td>
<td>
{{$contents->currency_type->currency_type}}
</td>
</tr>
@endforeach
</table>
我得到错误{{$contents->currency_type->currency_type}}
在视图上。
错误:
Trying to get property of non-object
更新的Post:
class UserAccountNumber extends Model
{
protected $table = 'user_account_numbers';
protected $guarded = ['id'];
public function user()
{
return $this->belongsTo('App\Http\Models\User');
}
public function currency_type()
{
return $this->belongsTo('App\Http\Models\CurrencyType', 'currency_type', 'id');
}
}
改善的第一件事是在你的UserAccountNumber
模型。你currency_type
关系应该这样写:
public function currencyType()
{
return $this->belongsTo(CurrencyType::class, 'currency_type', 'id');
}
那么您的通话将如下所示:
// using the currencyType() method from above
$data = UserAccountNumber::with('currencyType')
->orderBy('id', 'DESC')
->paginate(50);
然后,您可以在您使用访问货币类型有:
@foreach ($data as $key=>$contents)
$contents->currencyType->currency_type
@endforeach
似乎有些UserAccountNumber
不具备currency_type
连接到它。加入这样的事情代码:
@if (isset($contents->currency_type))
{{ $contents->currency_type->currency_type }}
@endif
或者:
{{ $contents->currency_type->currency_type or 'There is not type' }}
'currency_type'是一种关系 –
但是,如果有一个适当的关系,我。即一对多,一个CurrencyType-to-many-UserAccountNumbers,应该总是有一个CurrencyType,正确的@Alexey? – codedge
灿你向我们展示你的'UserAccountNumber'模型? – codedge
@codedge是先生。发布更新。 –
我仍然无法看到任何'类UserAccountNumber'模型类.. – codedge