繁体   English   中英

Laravel MySQL错误1054

[英]Laravel MySQL Error 1054

我有一个烦人的小问题,试图在Laravel的一个分页网格中删除一行,几天前运行良好,现在,每当我尝试删除任何记录时,我在所有网格中都遇到这个问题。 这是错误的示例:

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'users.id' 
 in 'where clause' (SQL: delete from `users` where `id` = 9) 

现在我的实际代码:

向上迁移

Schema::create('users', function(Blueprint $table){
    $table->increments('id');
    $table->string('username', 50);
    $table->string('password', 50);
    $table->string('email', 50);
    $table->tinyInteger('roles_id');
    $table->string('remember_token', 255);
    $table->timestamps();
});

视图

{{ Form::open(array('action' => array('UserController@delete_user'), 'method' => 'delete')) }}
{{ Form::submit('Delete', array('class'=>'btn btn-danger', 'title'=>'Delete', 'style'=>'width:70px;height:35px;margin-left:100px;')) }}
{{ Form::hidden('id','',array('id'=>'identifier')) }}
{{ Form::close() }}

路线

Route::delete('users/delete', array('uses'=>'UserController@delete_user'))->before('auth');

控制器用户控制器

public function delete_destroy(){
    $id = Input::get('id');
    User::findOrFail($id)->delete();
    return Redirect::route('users');
}

模型使用者

class User extends Eloquent implements UserInterface, RemindableInterface {

    protected $table = 'users';

    protected $hidden = array('password');

    protected $fillable = array('username', 'email', 'password', 'roles_id');
    public static $accessible = array('username', 'email', 'roles_id');

    private static function rules(){
        return array(
                    'username' => 'required|min:6|max:20|unique:users,username,"'.Input::get('id').'"',
                    'password' => 'required|min:8',
                    'email'    => 'required|email',
                    'roles_id' => 'required|numeric|min:1',
                    );
    }
//Bunch of other native functions
}

这几乎就是我所有的路线,视图,模型和控制器的外观。

我只是在删除记录方面遇到麻烦,创建和更新工作正常。 直到几天前我最后一次删除记录时,“删除”工作正常。 今天,我在视图中尝试了不同的操作,从创建到更新,然后当我尝试将其删除时,出现了先前引用的错误消息。

我找出了错误的原因。 原来我有4个表的触发器,像这样。 以下示例仅适用于users表:

CREATE TRIGGER `delete_privileges` AFTER DELETE ON `users` FOR EACH ROW
BEGIN
DELETE FROM users_controllers_actions 
       WHERE users_controllers_actions.users_id=users.id;
END;

猜猜这不是正确的语法...也许是DELETED.id或OLD.id ...我不习惯在MySQL中使用触发器,但在SQL Server中使用触发器。

我没有通过使用外键约束来做我应该做的事情……我最初没有设置它是因为它给了我语法错误。 但是,如果有人能告诉我正确的语法来创建类似于我显然试图创建的触发器的触发器,我将不胜感激。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM