【问题标题】:Laravel 5.2 all data reset when update 1 single dataLaravel 5.2 更新 1 个单个数据时所有数据重置
【发布时间】:2016-09-12 00:16:38
【问题描述】:

我有表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!');

}

我想要的是点击保存后不会重定向到其他页面。我必须为“statusdosen”创建新的更新方法数据吗?

【问题讨论】:

  • 还是不清楚?您是要更新单行还是要在更新后留在同一页面?
  • @jonju 是的,我想更新 1 个数据并在更新后留在同一页面。
  • 示例:表剂量(iddosen,user_id,namadosen,地址,状态剂量)DSN01 | 12 |地址在这里 | 1 我只想更新'statusdosen'。

标签: php laravel-5.2


【解决方案1】:

我认为您正在寻找类似的东西

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

【讨论】:

  • 我已经编辑了剂量表的页面。 namadosen、nipy、user_id、statusdosen 等以及当我更新数据时。它成功了,但是当我编辑 statusdosen 时。正在重置所有数据。
【解决方案2】:

好吧,这解释了一切

$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()-&gt;withInput() 并使用old 将数据存储到相应的输入。

  2. 使用 AJAX,并以 json 格式返回响应。

    例如:

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

【讨论】:

  • 在 null 上调用成员函数 update() 时出错
  • 我假设模型名称`dosen. You must change it to real model name and make sure $id`参数是id经常剂量模型而不是用户...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-25
  • 2016-12-12
  • 2016-12-05
  • 1970-01-01
  • 1970-01-01
  • 2017-09-05
相关资源
最近更新 更多