另一个“不能保存多个复选框”,并且“必须是数组类型,给定字符串”

时间:2018-08-23 04:35:55

标签: laravel

关于这个问题,我看到了很多相同的问题,但是我不知道该如何解决

所以我试图保存多个复选框,我认为这个复选框可以工作,但是现在我得到“必须是数组类型,给定字符串”。

顺便说一下,这是我的控制者

public function store(Request $request)
{
  // $multi = Multi::create($request->only(['data'])->implode(', '));
  // $multi = Multi::select('data')->implode();

  $multis = implode(',', $request->get('data'));
  $multis = Multi::create(['data' => $request->get('data')]);

  return redirect()->route('multi.create')->with('success', 'berhasil.');

这是我的create.blade.php

                  @foreach($multis as $multi)
              {{$multi['data']}}<br>
              @endforeach
              <br>----------------<br>

              {{Form::open(['action'=>'MultiController@store'])}}
              {{Form::checkbox('data[]','A')}}A<br>
              {{Form::checkbox('data[]','B')}}B<br>
              {{Form::checkbox('data[]','C')}}C<br>
              {{Form::submit('TAMBAH')}}
              {{Form::close()}}

3 个答案:

答案 0 :(得分:0)

尝试一下

$multis = implode(',', $request->data));
$multis = Multi::create(['data' => $multis]);

答案 1 :(得分:0)

GAURAV VAGHELA的sooo代码正在工作,但是只有在我插入1个字段并且我试图插入4个多个字段而仍然找不到解决方案的情况下,它才起作用...

im试图将数据保存到“ d”,“ i”,“ s”,“ c”而不是“ data”

我已经尝试过

        $multis= implode(',', $request->d);
    $multis= implode(',', $request->i);
    $multis= implode(',', $request->s);
    $multis= implode(',', $request->c);
    $multis= Test::create(['d','i','s','c' => $multis]);

        $multis = implode(',', $request->d,i,s,c);
    $multis = Test::create(['d','i','s','c' => $multis]);

        $multis= implode(',', $request->['d','i','s','c']);
    $multis= Test::create(['d','i','s','c' => $multis]);

他们都不是工作...

答案 2 :(得分:0)

您必须添加字段名称作为数组的键,然后将所有数据定义到不同的变量中,这样才能起作用。

    $multis1 = implode(',', $request->d);
    $multis2 = implode(',', $request->i);
    $multis3 = implode(',', $request->s);
    $multis4 = implode(',', $request->c);
    $multis= Test::create(array('d' =>  $multis1,'i' => $multis2,'s' => $multis3,'c' => $multis4));