2016-08-08 3 views
0

У меня есть таблица dosen, и я хочу обновить данные до столбца «statusdosen».Laravel 5.2 все данные сброшены при обновлении 1 разовая информация

У меня есть URL: ... админы/Dosen/статус

Когда я нажимаю сохранить, страница перенаправления ..admin/dosen и все данные в этой строке были сброшены (пусто).

Это мой взгляд

{!! Form::model($value, ['route' => ['admin.dosen.update', $value->user_id], 'method' => 'PUT']) !!} 
    <br> 
{!! Form::select('statusdosen', array('1' => 'Dikampus', '0' => 'Tidak Dikampus'), null, ['placeholder' => 'Pilih Status'], ['class' => 'form-control']) !!} 
    <br><br> 
!! Form::button('<i class="fa fa-check-square-o"></i> Simpan', ['type' => 'submit', 'class' => 'btn btn-primary btn-sm']) !!} 
{!! Form::close() !!} 

Метод:

public function status() 
{ 
    $dosen = Dosen::paginate(10); 
    return view('admin/dosen.status', compact('dosen')); 
} 

public function update($id) 

{ 
    $dosenUpdate = Request::only(['nipy', 'namadosen', 'alamatdosen', 'notelpdosen', 'tempatlahirdosen', 'tanggallahirdosen']); 
    $user = User::find($id); 
    $user->dosen()->update($dosenUpdate); 
    return redirect('admin/dosen')->with('message', 'Data berhasil diubah!'); 

} 

то, что я хочу, это после того, как я нажимаю сохранить не перенаправляет на другую страницу. я должен создать новые данные метода обновления для 'statusdosen'?

+0

До сих пор не ясно? Вы хотите обновить одну строку или хотите остаться на одной странице после обновления? – jonju

+0

@jonju да, я хочу обновить 1 данные и остаться на одной странице после обновления. – Ezra

+0

пример: таблица dosen (iddosen, user_id, namadosen, адрес, statusdosen) DSN01 | 12 | Адрес здесь | 1 Я хочу обновить только 'statusdosen'. – Ezra

ответ

0

Хорошо, что объясняет evreything

$user = User::find($id); 

На самом деле это так же, как

Update 
     dosen 
Set 
    Columnname1=$data, Columnnam2=data2 
Where 
    user_id = $id 

Это означает, что все строки с этим user_id будут обновлены.

Вы должны делать, как показано ниже

public function update($id) { 
    $dosenUpdate = Request::only(['nipy', 'namadosen', 'alamatdosen', 'notelpdosen', 'tempatlahirdosen', 'tanggallahirdosen']); 
    //$user= User::find($id); $user->dosen()->update($dosenUpdate); 
    $dosen = dosen::find($id); // parameter $id must be id of the dosen you want to update 
    $dosen->update(dosenUpdate); 
    return back()->with('message', 'Data berhasil diubah!'); 
} 

return back() вернет вас к предыдущей странице, но все входное значение не будет там, как страница перезагрузки.

Если вы хотите сохранить данные, которые вы имеете два способа

  1. Используйте return back()->withInput() и хранить данные к соответствующему входу с использованием old.
  2. Используйте AJAX и возвращайте ответ как json.

    Например:

    return response()->json(['message'=>'Data berhasil diubah!');

+0

получена ошибка Вызов функции-члена функции update() по нуле – Ezra

+0

Я предположил название модели 'dosen'. Вы должны изменить его на реальное имя модели и убедиться, что параметр '$ id' - это идентификатор, часто вызывающий модель, а не пользователя ... – jonju

0

Я думаю, что вы ищете что-то вдоль линии этого

public function update(Request $request, $id) { 
    // Make sure the value is true/1 or false/0 
    $this->validate($request, ['statusDosen' => 'boolean']); 

    // Retrieve only the status 
    $statusDosen = $request->get('statusDosen'); 

    // Update user->dosen() 
    $user = User::find($id); 
    $user->dosen()->update($statusDosen); 

    // Redirect back to the page you came from with your message 
    return redirect()->back()->with('message', 'Data berhasil diubah!'); 
} 
+0

Я редактирую страницу для таблицы доз. namadosen, nipy, user_id, statusdosen и т. д., и когда я обновляю данные. он преуспевает, но когда я редактирую statusdosen. все данные сбрасываются. – Ezra