首页 > 解决方案 > 我需要查看特定联系人的电话号码

问题描述

这是我的控制器:

 public function viewContacts(){
    $contacts = Contact::with('number')->get();
    return view('contacts.view_contacts')->with(compact('contacts'));
}

这是我的观点:

@foreach($numbers as $number)
<tbody id="myTable">
  <tr>
    <td>{{ $number->number}}</td>
    <td>{{ $number->type}}</td>
    <td></td>
  </tr>
  @endforeach

但是,通过这种方式,我显示了表格中的所有数字。如何传递特定联系人的 ID 并仅查看他们的号码?

这是我的表: 在此处输入图像描述 在此处 输入图像描述


如果我在控制器中使用:

public function viewNumbers($id){
        $contact = Contact::with('number')->find($id);
    return view('numbers.view_numbers')->with('contact', $contact);
    }

}

在刀片文件中:

@foreach ($contact->number as $number)
<tbody id="myTable">
  <tr>
    <td>{{ $contact->id }}/{{ $number->number }}"</td>
    <td></td>
    <td></td>
  </tr>
  @endforeach

我收到此错误:尝试获取非对象的属性“编号”

标签: phphtmlcsssqllaravel

解决方案


使用控制器代码

public function viewNumbers($id){
    $contact = Contact::whereHas('number' function($q) use($id){
   $q->where('id','=', $id);
 })->first();
return view('numbers.view_numbers')->with('contact', $contact);
}

在刀片

@if($contact)
@foreach ($contact->number as $number)
<tbody id="myTable">
<tr>
<td>{{ $contact->id }}/{{ $number->number }}"</td>
<td></td>
<td></td>
</tr>
@endforeach
@endif

推荐阅读