我正在学习Lumen框架并阅读该教程:使用Lumen开发RESTful API
目前正在工作,但是当我访问我的 API 时
http://example.com/api/accounts/2
它返回
SQLSTATE[42S02]:找不到基表或视图:1146 表 "youframe.accounts"不存在(SQL:从
accounts
中选择 *,其中accounts
.id
= 2 限制 1(
我有一个名为"帐户"的模型文件.php
<?php
namespace App;
use IlluminateDatabaseEloquentModel;
class Account extends Model
{
protected $fillable = [
'username', 'email', 'password', 'type'
];
protected $hidden = [];
}
以及一个名为"帐户控制器"的控制器文件.php
<?php
namespace AppHttpControllers;
use AppAccount;
use IlluminateHttpRequest;
class AccountController extends Controller
{
public function getAccount($id, Request $request)
{
$this->validate($request, [
'token' => 'required'
]);
return response()->json(Account::find($id), 400);
}
}
我没有叫accounts
的表。我唯一的表是account
,它从哪里呼唤accounts
?
将表名称添加到模型以将模型与后端数据库表相关联。
<?php
namespace App;
use IlluminateDatabaseEloquentModel;
class Account extends Model
{
protected $fillable = [
'username', 'email', 'password', 'type'
];
protected $hidden = [];
protected $table = 'account';
}
如果您不提及表名,Laravel将采用模型名称的复数形式作为表名。有关更多参考,请参阅雄辩的模型约定。
更新
如果只想选择某些列,请在雄辩查询中使用 Select 命令。
$rows = Account::select(['column_name_1','column_name_2'])->get();
或者,如果您希望它们在数组中
$rows = Account::select(['column_name_1','column_name_2'])->get()->toArray();