Laravel 5,调用未定义的方法 stdClass::update()
Laravel 5, Call to undefined method stdClass::update()
我正在使用 Laravel 5 并且我有一个必须更新数据库的简单编辑页面。当我尝试 运行 它时,出现错误
FatalErrorException in UserController.php line 47: Call to undefined method stdClass::update()
控制器:
public function userUpdate()
{
if(Input::get('send')) {
$arr = [
'email' => Input::get('email')
];
DB::table(Config::get('users_table'))->find(Input::get('userId'))->update(['is_active' => TRUE]);
return redirect()->route('users');
}
}
数据库架构:
id bigserial NOT NULL,
username text,
email text,
permission integer NOT NULL,
is_staff boolean NOT NULL DEFAULT false,
is_active boolean NOT NULL DEFAULT false,
updated_at timestamp without time zone,
created_at timestamp without time zone,
remember_token text
路线:
Route::post('/user/update', [
'as' => 'userUpdate', 'uses' => 'UserController@userUpdate'
]);
查看:
{!! Form::open(['route' => 'userUpdate', 'method' => 'post']) !!}
<label>Username</label>
{!! Form::text('username', $user->username, ['class' => 'form-control readonly', 'readonly' => '']) !!}
<label>Email</label>
{!! Form::text('email', $user->email, ['class' => 'form-control']) !!}
<label>Permission</label>
{!! Form::text('permission', $user->permission, ['class' => 'form-control']) !!}
{!! Form::hidden('userId', $user->id) !!}
{!! Form::submit('Update User', ['class' => 'btn green', 'name' => 'send']) !!}
{!! Form::submit('Cancel', ['class' => 'btn black', 'name' => 'clear']) !!}
{!! Form::close() !!}
我使用这种结构,特别是在我的控制器的另一个函数中使用输入和表单 class 来制作行列表或获取 table 的单独行,一切正常,但在更新数据库时出现 Call to undefined method stdClass::update()
错误。有什么我想念的吗?
您不能在查询生成器中使用 find 方法,您需要使用 where
public function userUpdate()
{
if(Input::get('send')) {
$arr = [
'email' => Input::get('email')
];
DB::table(Config::get('users_table'))->where('id',Input::get('userId'))->update(['is_active' => TRUE]);
return redirect()->route('users');
}
}
在我的例子中,我不得不从
first() to limit(1)
即
$blog = DB::table('blogs')
->where('blogs.id', $id)
->first();
到
$blog = DB::table('blogs')
->where('blogs.id', $id)
->limit(1);
我正在使用 Laravel 5 并且我有一个必须更新数据库的简单编辑页面。当我尝试 运行 它时,出现错误
FatalErrorException in UserController.php line 47: Call to undefined method stdClass::update()
控制器:
public function userUpdate()
{
if(Input::get('send')) {
$arr = [
'email' => Input::get('email')
];
DB::table(Config::get('users_table'))->find(Input::get('userId'))->update(['is_active' => TRUE]);
return redirect()->route('users');
}
}
数据库架构:
id bigserial NOT NULL,
username text,
email text,
permission integer NOT NULL,
is_staff boolean NOT NULL DEFAULT false,
is_active boolean NOT NULL DEFAULT false,
updated_at timestamp without time zone,
created_at timestamp without time zone,
remember_token text
路线:
Route::post('/user/update', [
'as' => 'userUpdate', 'uses' => 'UserController@userUpdate'
]);
查看:
{!! Form::open(['route' => 'userUpdate', 'method' => 'post']) !!}
<label>Username</label>
{!! Form::text('username', $user->username, ['class' => 'form-control readonly', 'readonly' => '']) !!}
<label>Email</label>
{!! Form::text('email', $user->email, ['class' => 'form-control']) !!}
<label>Permission</label>
{!! Form::text('permission', $user->permission, ['class' => 'form-control']) !!}
{!! Form::hidden('userId', $user->id) !!}
{!! Form::submit('Update User', ['class' => 'btn green', 'name' => 'send']) !!}
{!! Form::submit('Cancel', ['class' => 'btn black', 'name' => 'clear']) !!}
{!! Form::close() !!}
我使用这种结构,特别是在我的控制器的另一个函数中使用输入和表单 class 来制作行列表或获取 table 的单独行,一切正常,但在更新数据库时出现 Call to undefined method stdClass::update()
错误。有什么我想念的吗?
您不能在查询生成器中使用 find 方法,您需要使用 where
public function userUpdate()
{
if(Input::get('send')) {
$arr = [
'email' => Input::get('email')
];
DB::table(Config::get('users_table'))->where('id',Input::get('userId'))->update(['is_active' => TRUE]);
return redirect()->route('users');
}
}
在我的例子中,我不得不从
first() to limit(1)
即
$blog = DB::table('blogs')
->where('blogs.id', $id)
->first();
到
$blog = DB::table('blogs')
->where('blogs.id', $id)
->limit(1);