我刚开始学习Laravel,我发现以下错误:
在gebruikers中插入未知列“更新位置”(naam、wachtwoord、更新位置、创建位置)
我知道错误来自迁移表时的timestamp列,但我没有使用updated\u at
字段。我以前在学习Laravel教程时使用它,但现在我正在制作(或试图制作)我自己的东西。即使不使用时间戳,也会出现此错误。我似乎找不到使用它的地方。代码如下:
控制器
public function created()
{
if (!User::isValidRegister(Input::all())) {
return Redirect::back()->withInput()->withErrors(User::$errors);
}
// Register the new user or whatever.
$user = new User;
$user->naam = Input::get('naam');
$user->wachtwoord = Hash::make(Input::get('password'));
$user->save();
return Redirect::to('/users');
}
路线
Route::get('created', 'UserController@created');
模型
public static $rules_register = [
'naam' => 'unique:gebruikers,naam'
];
public static $errors;
protected $table = 'gebruikers';
public static function isValidRegister($data)
{
$validation = Validator::make($data, static::$rules_register);
if ($validation->passes()) {
return true;
}
static::$errors = $validation->messages();
return false;
}
我一定忘了什么。。。我做错了什么?
Alex和Sameer给出了很好的回答,但可能只是关于为什么需要将
public $timestamps = false;
时间戳在官方的Laravel页面上有很好的解释:
缺省情况下,Eloquent期望created_at和updated_at列存在于
将timestamps设置为false意味着您将丢失在处创建的和在处更新的密钥,而您可以在模型中同时设置这两个密钥。
案例一:
您已经在列中创建了update\u,但在
列中没有更新。\u您可以在模型中将中的updated\u设置为false
class ABC extends Model {
const UPDATED_AT = null;
案例2:
您有两个
created_at
和updated_at
列,但列名不同
你可以简单地做:
class ABC extends Model {
const CREATED_AT = 'name_of_created_at_column';
const UPDATED_AT = 'name_of_updated_at_column';
最后,完全忽略时间戳:
class ABC extends Model {
public $timestamps = false;
在模型中,编写以下代码;
public $timestamps = false;
这会奏效的。
说明:默认情况下laravel会created_at
问题内容: 我刚开始使用Laravel,却遇到以下错误: 未知列’updated_at’插入gebruikers(naam,wachtwoord,updated_at,created_at) 我知道错误是由您在迁移表时的时间戳列引起的,但我没有使用该字段。我遵循Laravel教程时曾经使用它,但是现在我正在制作(或尝试制作)自己的东西。即使不使用时间戳,我也会收到此错误。我似乎找不到使用它的地方。
我已经在做我的项目好几个星期了。一切都很好。但今天突然间,我无法加载我更改的一些视图(有些视图可以更改并得到结果)。即使我更换了控制器,它现在仍然工作。根据SO和其他一些网站,我尝试了以下内容 重新启动浏览器 我错过了什么。提前谢谢。
我试图运行一个Laravel查询,选择一个出现多次的特定字段,我得到了下面的错误。 “SQLSTATE[42S22]:未找到列:1054”“having子句”“中的未知列”“no_of_service”“(SQL:select count(*)作为内部连接在上的按分组,具有 我希望看到多次出现的字段。
我使用的框架Laravel。 我有两个表(用户和成员)。当我想登录时,我会收到错误消息: SQLSTATE[42S22]:找不到列: 1054未知的列'user_email'in'where子句'(SQL:选择*fromwhere=?限制1)(绑定:数组(0= 表用户 表成员 迁移用户 移民成员 模型用户 模范会员 成员模型使用:使用照明\Auth\UserInterface; 控制器 auth.
问题内容: 我正在使用Laravel框架。 我有2个表(用户和成员)。当我想登录时,收到错误消息: SQLSTATE [42S22]:找不到列:1054’where子句’中的未知列’user_email’(SQL:select * from where =?limit 1)(绑定:数组(0 =>'test@hotmail.com‘,)) 表用户 表成员 迁移用户 移民会员 模型使用者 模范会员 成
我已经定义了不使用时间戳,但仍然使用laravel强制使用时间戳...我使用laravel 5.6。 例如,当我访问页面时-http://mypage/api/videos/21/comments 我得到一个错误-“SQLSTATE[42S22]:未找到列:在“order子句”(SQL:select*fromwhere视频id=▶" app/Providers/VideoComment.php a