0

我使用 3 个数组存储在表课程中。请帮助我将数组保存在字符串中或将数组保存在数据库中......我的数组问题:

  • 我无法在数据库中存储和保存图像

  • 我无法在数据库中保存数组结果和要求

<div class="col-md-10"><input type="file" class="form-control" name="images" id="images" ></div>
    //and this 
<input type="text" class="form-control" name="outcomes[]" id="outcomes">
    //or this
<input type="text" class="form-control" name="requirements[]" id="requirements">

我的商店函数调用:

public function store(CourseRequest $request)
{
    $imageUrl = $this->upload2Images($request->file('images'));

    auth()->user()->course()->create( 
        $request->except(['_token','files']),
        ['images'=>$imageUrl]);

    return redirect(route('courses.index'));
}

并且upload2Images()

public function upload2Images($file)
    {
        $year = Carbon::now()->year;
        $month = Carbon::now()->month;
        $imagePath = "upload/images/{$year}/{$month}/";
        $filename = $file->getClientOriginalName();
        $file = $file->move(public_path($imagePath), $filename);
        $url['images'] = "upload/images/{$year}/{$month}/$filename";
        return $url;
    }

当我使用

$data = array_merge(
            $request->except(['_token','files','outcomes','requirements']),
            $images
        );
$id =  auth()->user()->course()->create($data)->id;

它工作正常,但结果和要求是我以这种方式隐藏的数组。我可以通过这个论点吗?

4

2 回答 2

2

你在打电话:

    $url['images'] = "upload/images/{$year}/{$month}/$filename";
    return $url;

然后:

    $imageUrl = $this->upload2Images($request->file('images'));

$imageUrl数组也是如此。但是保存记录的代码期望它是一个字符串。

`...->create( $request->except(['_token','files']),['images'=>$imageUrl]);`

此外,您似乎将 2 个参数传递给create它只需要一个

也许你的意思是调用类似下面的东西?

$images = $this->upload2Images($request->file('images'));
$data = array_merge($request->except(['_token','files']), $images);
auth()->user()->course()->create($data);
于 2020-08-06T23:58:44.400 回答
1

解决了谢谢我在这个模型中使用

protected $casts = [
        'images' => 'array',
        'requirements' => 'array',
        'outcomes' => 'array',
    ];

和控制器使用这个

   $images = $this->upload2Images($request->file('images'));
        $requirements = $request->requirements;
        $outcomes = $request->outcomes;

        $data = array_merge($request->except(['_token']), ['images'=>$images],['requirements'=>$requirements],['outcomes'=>$outcomes]);
        $id =  auth()->user()->course()->create($data)->id;
于 2020-08-07T05:18:06.223 回答