我正在学习Lumen框架并阅读该教程:Developing RESTful APIs with Lumen
目前正在工作,但当我访问我的api
http://example.com/api/accounts/2
它返回
SQLSTATE [42S02]:未找到基表或视图:1146表'youframe.accounts'不存在(SQL:select * from
accounts
其中accounts
.id
= 2 limit 1)
我有一个名为Account.php的模型文件
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Account extends Model
{
protected $fillable = [
'username', 'email', 'password', 'type'
];
protected $hidden = [];
}
和一个名为AccountController.php的控制器文件
<?php
namespace App\Http\Controllers;
use App\Account;
use Illuminate\Http\Request;
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 Illuminate\Database\Eloquent\Model;
class Account extends Model
{
protected $fillable = [
'username', 'email', 'password', 'type'
];
protected $hidden = [];
protected $table = 'account';
}
如果您没有提及表名,Laravel将假定您的模型名称的复数形式作为表名。有关更多参考,请参阅Eloquent Model Conventions。
UPDATE
如果您只想选择某些列,请在您的eloquent查询中使用select命令。
$rows = Account::select(['column_name_1','column_name_2'])->get();
或者如果你想要它们在一个数组中
$rows = Account::select(['column_name_1','column_name_2'])->get()->toArray();