使用Laravel尝试检索ID的数据的其他页面

时间:2018-10-18 13:58:28

标签: php laravel

快速说明:使用搜索栏从数据库中检索数据。因此,由于搜索,检索了两个数据。在搜索之后,我还想通过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的数据。

1 个答案:

答案 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>