SQLSTATE [42S22]:未找到列:1054'where子句'中的未知列'id'(SQL:select * from`myroutes`其中`id` = 14 limit 1)

时间:2018-04-26 12:38:14

标签: database laravel routes

使用Laravel我能够从数据库发布数据,购买全部。但我需要它才能获得与用户登录时具有相同user_id的数据。

当我尝试选择其中一个输出数据或尝试链接时,我收到以下错误*“SQLSTATE [42S22]:未找到列:1054'where子句'中的未知列'id'(SQL: select * from myroutes where id = 14 limit 1)“*但我到处都有”myroute_id“,这是数据库中的正确列。

web.php

Route::get('/my-saved-routes', function () {

$myroutes = DB::table('myroutes')->latest()->get();

return view('myroutes.index', compact('myroutes'));
});

Route::get('/my-saved-routes/{myroute_id}', function ($myroute_id) {    

$myroute = DB::table('myroutes')->find($myroute_id);

return view('myroutes.show', compact('myroute'));
});

myroutes.index

    @foreach ($myroutes as $myroute)
    <ul>

        <a href="/my-saved-routes/{{ $myroute->myroute_id }}">
            <li>{{ $myroute->start }} - {{ $myroute->end }}</li>
        </a>
    </ul>
@endforeach

myroutes.show

<ul>
    <li>{{ $myroute->myroute_id }}</li> 
    <li>{{ $myroute->start }}</li>
    <li>{{ $myroute->end }}</li>
    <li>{{ $myroute->waypoints }}</li>
</ul>

数据库

数据库-IMG
enter image description here

2 个答案:

答案 0 :(得分:0)

您的查询将是这样的

$data = DB::table('myroutes')->where('user_id',$yourId)->get();
dd($data);

答案 1 :(得分:0)

find()始终使用id列。你必须使用这个:

$myroute = DB::table('myroutes')->where('myroute_id', $myroute_id)->first();