Laravel 5.2在更新1个单个数据时重置所有数据

时间:2016-08-08 08:44:32

标签: php laravel-5.2

我有表dosen,我想将数据更新为" statusdosen"列。

我有网址:... admin / dosen / status

当我点击“保存”时,页面会重定向到..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!');

}

我想要的是点击保存后不重定向到其他页面。我是否必须为&#39; statusdosen&#39;?

创建新的更新方法数据

2 个答案:

答案 0 :(得分: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!');

答案 1 :(得分: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!');
}