尝试在上传到数据库时获取非对象的属性

时间:2017-11-26 17:55:16

标签: php laravel ffmpeg

我有一个脚本,当用户可以剪辑视频,然后该视频上传到公共文件夹,现在我想将所有视频数据上传到数据库。但我得到的标题错误。这是我的代码:

控制器:

public function clip($id)
    {
        $video = Video::where('id', $id)->first();

        $oldId = $video->id;
        $originalName = $video->original_name;
        $newName = str_random(50) . '.' . 'mp4';

        FFMpeg::fromDisk('public')
        ->open('/uploads/videos/' .$video->file_name)
        ->addFilter(function ($filters) {
        $filters->clip(FFMpeg\Coordinate\TimeCode::fromSeconds(5), FFMpeg\Coordinate\TimeCode::fromSeconds(2));
        })
        ->export()
        ->toDisk('public')
        ->inFormat(new \FFMpeg\Format\Video\X264)
        ->save('/uploads/videos/' . $newName);



        $data = ['user_id'=>Auth::user()->id,
            'file_name'=>$newName,
            'original_name'=> $originalName,
            'old_id' => $oldId,
        ];

         $video = Video::edit($data);
    }

型号:

public static function edit($request)
    {
        $video = new Video;
        $video->user_id = $request->user_id;
        $video->file_name = $request->file_name;
        $video->original_name = $request->original_name;
        $video->save();

        $old = $file = Video::where('id', $request->old_id)->delete();
        //$old_file = unlink($request->file('file'));

        return $video;
    }

我应该编辑什么?

1 个答案:

答案 0 :(得分:1)

由于您要传递数组,因此需要使用$request['user_id']语法而不是$request->user_id。您收到错误是因为您正在尝试将数组视为对象。

但是由于你在这里准备了数组,只需使用create method:

public static function edit($data)
{
    $this->destroy($data['old_id']);

    return $this->create($data);;
}

不要忘记将$fillable数组添加到模型中以使其正常工作。