如何在laravel 5.6中检索2个已定义的关系

时间:2018-06-17 10:28:58

标签: php laravel

我有一个发票模型应该有1个用户和许多产品在这里我设置用户关系我在视图中检索它很好但我不能更深入1级产品关系看看我的代码< / p>

private File getNextCodePath(File targetDir, String packageName) {
    File result;
    SecureRandom random = new SecureRandom();
    byte[] bytes = new byte[16];
    do {
        random.nextBytes(bytes);
        String suffix = Base64.encodeToString(bytes, Base64.URL_SAFE | Base64.NO_WRAP);
        result = new File(targetDir, packageName + "-" + suffix);
    } while (result.exists());
    return result;
}

这是我的控制器

 public function user() {
    return $this->hasOne('App\Client','id','client_id');
}
public function products(){
    return $this->hasMany('App\Product','id','product_id');
}

这是视图

public function show(Invoice $invoice)
    {
        $clients = Invoice::with('user','products')->get();
//      $products = Invoice::with('products')->get();
        return view('admin.invoices.show', compact('invoice', $invoice),compact('clients',$clients));
    }

现在问题在于我可以很好地看到客户,但我无法访问这里的产品关系这里是一个$ client客户端

<td>{{$invoice->id}}</td>
<td>{{$invoice->title}}</td>
<td><a href="/admin/invoices/{{$invoice->id}}">{{$invoice->description}}</a></td>

   @foreach($clients as $client)
   <td>{{ $client->user->title ?? 'no costumer' }}</td>
   <td>{{ $client->product->name ?? 'no products' }}</td>
   @endforeach

我所理解的是,hasmany是一个返回的项目集合,但我不会理解如何访问它们并显示它们。

0 个答案:

没有答案