繁体   English   中英

Laravel 从关系中获取数据并在视图中显示

[英]Laravel get data from relationship and show in view

只是这个代码是我的获取数据解决方案,这个模型是关系,我的结果是真实的,但我无法从关系中获取数据并在视图中显示,例如;

$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

帖子更新:

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' }}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM