Laravel 5, вызов неопределенного метода stdClass :: update ()

Я использую Laravel 5, и у меня есть простая страница редактирования, которая должна обновить базу данных. когда я пытаюсь запустить его, я получаю сообщение об ошибке

FatalErrorException в UserController.php строка 47: вызов неопределенного метода 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() !!}

Я использую эту структуру, особенно этот тип использования классов Input и Form в другой функции в моем контроллере для создания списка строк или получения отдельной строки таблицы, и все было в порядке, но при обновлении базы данных я получил Call to undefined method stdClass::update() ошибка. Есть что-то, чего мне не хватает?

0

Решение

Вы не можете использовать метод поиска в построителе запросов, вам нужно использовать где

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');
}
}
3

Другие решения

В моем случае я должен был изменить

first() to limit(1)

то есть.

        $blog = DB::table('blogs')
->where('blogs.id', $id)
->first();

к

        $blog = DB::table('blogs')
->where('blogs.id', $id)
->limit(1);
1

По вопросам рекламы [email protected]