我正在学习Lumen Framework并阅读该教程:Developing RESTful APIs with Lumen
当前正在工作,但是当我访问我的api
http://example.com/api/accounts/2
它返回
SQLSTATE [42S02]:未找到基表或视图:1146表 “ youframe.accounts”不存在(SQL:从
accounts
中选择*,其中accounts
。id
= 2个限制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
?
答案 0 :(得分:1)
将表名添加到模型中,以将模型与后端数据库表相关联。
<?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。
更新
如果您只想选择某些列,请在雄辩的查询中使用select命令。
$rows = Account::select(['column_name_1','column_name_2'])->get();
或者如果您希望将它们放在数组中
$rows = Account::select(['column_name_1','column_name_2'])->get()->toArray();