Laravel 5.5复选框管理和数据库更新

时间:2018-04-17 19:11:35

标签: laravel-5 eloquent

我想创建一个允许设置平台的设置,第一步是定义将在平台中使用的lang ...

为此我创建了2条路线:

control-alt-backslash

第一个调用initLang方法,该方法显示被删除的lang列表(我使用softdeletes ...)。默认情况下,所有语言在deleted_at字段中都有一个时间戳。

Route::get('/home/setup', 'BackOffice\FirstconnectionController@initLang');
Route::patch('/home/setup', 'BackOffice\FirstconnectionController@initLangUpdate')->name('setup.setLang');

在我看来:

public function initLang()
{
    $langs = Lang::onlyTrashed()->get();
    $sectorsCount = Sector::count();
    return view('admin.firstConnection', compact('langs', 'sectorsCount'));
}

最后发送表单,我在initLangUpdate()方法中恢复数据

{!!  Form::model($langs, [
        'method' => 'PATCH',
        'route' => 'setup.setLang'
    ])  !!}
@foreach($langs as $lang)
   {!! Form::label($lang->langname,  $lang->langname ) !!}
   {!! Form::checkbox( 'lang[]', $lang->id ) !!}
@endforeach
<div class="col-xs-12 col-sm-12 col-md-12 text-center">
    <button type="submit" class="btn btn-primary">OK</button>
</div>
{!! Form::close() !!}

我的问题如下:

  • 我得到一个字符串数组:[&#34; 3&#34;,&#34; 4&#34;]我应该有一个整数数组
  • 如何设法在我的表格中进行更新?实际上更新应该是将deleted_at设置为NULL
  • 是否有另一种获取数据的方法:我使用数组恢复值:lang []

由于

1 个答案:

答案 0 :(得分:0)

我刚刚这样做了:

foreach ($request as $entry) {
    Lang::withTrashed()->find($entry)->restore();
}
return redirect('admin/home/setup')->with('success', 'It works ...');