2016-08-07 2 views
0

Я хочу удалить красноречивые данные из 2 таблиц. Таблица dosen и пользователей.не может удалить данные, красноречивые в laravel 5.2

красноречив: идентификатор и user_id

1.users (идентификатор, имя, имя пользователя, адрес электронной почты, пароль администратора, remember_token, updated_at, created_at)

2.dosen (iddosen, user_id, namadosen, nipy , alamatdosen, notelpdosen и т.д.)

это мой метод:

public function destroy($id) 
{  
$dosenUpdate = Request::all(); 
$user = User::find($id); 
$user->dosen()->delete($dosenUpdate); 
    return redirect('admin/dosen')->with('message', 'Data berhasil dihapus!'); 
} 

, когда я использую этот метод, данные из таблицы Дошен удаляется. но у пользователей таблицы все еще есть данные. если я изменил мой метод:

public function destroy($id) 
{  
$dosenUpdate = Request::all(); 
$user = User::find($id)->delete(); 
$user->dosen()->delete($dosenUpdate); 
    return redirect('admin/dosen')->with('message', 'Data berhasil dihapus!'); 
} 

я получил ошибку:

Call to a member function dosen() on boolean 

что это правильный код?

+0

Кажется, это не находит пользователю передается идентификатор .. поэтому результат 'false' , Добавить 'if ($ user) {... then delete}' – Hardy

+0

У 'user' и' dosen' есть от 1 до 1 отношения? – jaysingkar

ответ

1

В вашем destroy() метода вы хранящие логическое значение в $user вместо пользователя модели, как вы удаляете модель в следующей линии

$user = User::find($id)->delete(); 

Эта линия удаляемый модели пользователя и возвращающий статус запрос, т. е. если он успешный или нет. Следовательно, $user хранит статус delete() метода, а не user модель

изменить свой метод destroy() ниже:

public function destroy($id) 
{  
$dosenUpdate = Request::all(); 
$user = User::find($id); 
$user->dosen()->delete($dosenUpdate); 
$user->delete(); 
    return redirect('admin/dosen')->with('message', 'Data berhasil dihapus!'); 
} 
Смежные вопросы