【发布时间】:2018-01-24 04:59:25
【问题描述】:
我是 laravel 的新手,在理解查询构建器的工作方式方面存在一些问题。
我创建了一个 laravel 项目并将其成功连接到 sqlsrv。现在我想从数据库中检索数据。
对于第一个没有模型的只是在wep.php了解。
Route::get('/tasks', function () {
$tasks = DB::table('WebShops')->get();
dd($tasks);
});
这是有效的,它显示了所有的数据库行。
现在我想用find 命令过滤行,我得到一个错误:
Route::get('/tasks/{ShopID}', function($ShopID){
$task = DB::table('WebShops')->find($ShopID);
dd($task);
});
SQLSTATE[42S22]:[Microsoft][ODBC Driver 11 for SQL Server][SQL 服务器] 列名“id”无效。 (SQL: select top 1 * from [WebShops] 其中 [id] = 1)
这很令人困惑,因为我将 find 分配给了 ShopID,现在我得到了正在搜索 id 的错误。为什么?
我也试过这个:
Route::get('/tasks/{ShopID}', function($ShopID){
$task = DB::table('WebShops')->where('ShopID', $ShopID);
//dd($task->name); here comes also an error
dd($task);
});
这向我展示了一个包含我不太了解的数据的大数组。
【问题讨论】:
-
$task = DB::table('WebShops')->where('ShopID', $ShopID)->get(); -
你打败了我@u_mulder :D
-
您应该创建一个模型,然后调用它以更简单方便的方式。例如:$webshops = App\WebShop::all(); // 这将调用表 'WebShop' 中的所有数据
标签: php sql-server laravel