我对laravel还是很陌生,我正在尝试更新一个我称为STATUS的记录。在我的视图刀片中,我具有名为“设置为默认值”的操作按钮的数据列表,我想要完成的是,一旦单击“设置为默认值”,该记录的状态(列)将更新为1,其余的行应更新为0。
由于我是这个平台的新手,所以我真的不知道该怎么办。但是经过一番练习之后,我可以在没有其他条件的情况下创建BASIC CRUD。
这是我的操作按钮,位于我的 views \ currencies \ index.blade.php
{!! Form::model($currency, ['method' => 'POST', 'route' => ['currencies.update', $currency] ]) !!}<br/>
{!! Form::hidden('status', 1) !!}<br/>
{!! Form::submit('set default', ['class' => 'btn btn-primary']) !!}<br/>
{!! Form::close() !!}
views\currencies\index.blade.php
进一步解释。这是我的update.blade.php。它会更新“货币”表中的名称和缩写。
<form action="{{ route('currencies.update', $currency) }}" method="post">
{{ csrf_field() }}
{{ method_field('PUT') }}
<input type="hidden" name="status" value="{{ $currency->status}}">
<input type="text" name="name" value="{{ $currency->name }}"><br/>
<input type="text" name="acronym" value="{{ $currency->acronym }}"><br/>
<input type="submit">
</form>
,当前是我在CurrenciesController中的编辑和更新功能。
public function edit(Currencies $currency)
{
return view('currencies.edit', compact('currency'));
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\Currencies $currencies
* @return \Illuminate\Http\Response
*/
public function update(Request $request, Currencies $currency)
{
$currency->update($request->only('name','acronym','status'));
return redirect()->route('currencies.index');
}
它仅从我的add.blade和edit.blade中捕获数据。
现在我在上面也提供的 views \ currencies \ index.blade.php 上显示的按钮应该只更新记录的状态。
我想要实现的是,一旦单击该按钮,它将ID传递给我的currencyController,然后将状态从0更新为1,并将之前的记录从“ 1”更新为“ 0”。最重要的是,在其状态栏中应该只有一个记录,其值为“ 1”。
非常感谢您!
答案 0 :(得分:1)
您要做的就是执行两个查询,
一个用于更新状态0,状态为1
Currencies::where('status', 1)->update(['status' => 0]);
,将收到的ID的状态从0更改为1
Currencies::where('id', $request->id)->update(['status' => 1]);