快速说明:使用搜索栏从数据库中检索数据。因此,由于搜索,检索了两个数据。在搜索之后,我还想通过ID在单个页面中显示每个数据。例如,在html表中检索了很多遗产数据,例如:Estate_Name,Estate_Address等。我想将estate_name链接到另一个仅检索该ID数据的页面。
我用新代码更新了问题,并立即收到此错误:
试图获取非对象的属性(查看: /var/www/html/laravel/resources/views/show.blade.php)
这是控制者:
public function show($id)
{
$estates = allestates::findOrFail($id);
return view('show')->with(['estates' => $estates]);
}
这是我的路线:
Route::get('/show/{id}', 'PagesController@show');
这也是main.blade;
@foreach($estates as $estate)
<tr class="even">
<td>{{$estate->id}}</td>
<td>{{str_limit($estate->company_name, $limit = 20)}}</td>
<td><a href="/show/{{$estate->id}}">{{str_limit($estate->building_name, $limit = 20)}}</a></td>
<td>{{str_limit($estate->address, $limit = 22)}}</td>
<td>{{str_limit($estate->price, $limit = 20)}}</td>
<td class="price-hidden">{{$estate->old_price}}</td>
<td>{{str_limit($estate->extend, $limit = 20)}}</td>
<td>{{str_limit($estate->rooms, $limit = 20)}}</td>
<td>{{str_limit($estate->entry, $limit = 20)}}</td>
</tr>
@endforeach
这是show.blade:
@foreach($estates as $estate)
<tr class="even">
<td>{{$estate->id}}</td>
<td>{{str_limit($estate->company_name, $limit = 20)}}</td>
<td>{{str_limit($estate->building_name, $limit = 20)}}</td>
<td>{{str_limit($estate->address, $limit = 22)}}</td>
<td>{{str_limit($estate->price, $limit = 20)}}</td>
<td class="price-hidden">{{$estate->old_price}}</td>
<td>{{str_limit($estate->extend, $limit = 20)}}</td>
<td>{{str_limit($estate->rooms, $limit = 20)}}</td>
<td>{{str_limit($estate->entry, $limit = 20)}}</td>
</tr>
@endforeach
我在这里做错了什么?任何想法?谢谢! 另外,我还展示了刀片,我想在单击后仅显示一个ID的数据。
答案 0 :(得分:0)
您必须像这样更改它:
public function show($id)
{
$estates = allestates::where('id', $id)->first();
if($estates){
return view('pages.show', ['estates' => $estates]);
}else{
return 'no records found';
}
}
也可以路由:
Route::get('pages/{id}', 'PagesController@show');
还有
<td><a href="/pages/{{$estate->id}}">{{str_limit($estate->building_name, $limit = 20)}}</a></td>