在更新Laravel中的记录时如何保持默认图像

发布于 2025-02-12 13:13:06 字数 1966 浏览 0 评论 0原文

当用户更新电影记录并上传新图像时,我希望删除旧图像,并且要上传新图像,但是如果电影具有默认图像,则我不想删除它(因为其他带有默认的记录此后将不会有任何图像,而只是在更新期间上传新的图像。而且,如果用户没有上传任何内容,则只需在其他参数更新时使用默认图像的记录。我的代码有一些错误,所以这是更新函数:

    public function update(StoreMovieRequest $request, Movie $movie)
    {
        $input = $request->all();

        if ($image = $request->file('image_path') || $movie->image_path != 'images/default.png') {
            $deleteImage = unlink(public_path(). '/' . $movie->image_path);
            $image = $request->file('image_path');
            $imageDestinationPath = 'images/';
            $movieImage = $imageDestinationPath . date('YmdHis') . "." . $image->getClientOriginalExtension();
            $image->move($imageDestinationPath, $movieImage);
            $input['image_path'] = "$movieImage";
        } elseif($image = $request->file('image_path') || $movie->image_path == 'images/default.png') {
            $image = $request->file('image_path');
            $imageDestinationPath = 'images/';
            $movieImage = $imageDestinationPath . date('YmdHis') . "." . $image->getClientOriginalExtension();
            $image->move($imageDestinationPath, $movieImage);
            $input['image_path'] = "$movieImage";
        }
        $movie->update($input);
}

我的迁移:

public function up()
    {
        Schema::create('movies', function (Blueprint $table) {
            $table->id();
            $table->string('name');
            $table->integer('status')->nullable()->default(0);
            $table->string('image_path')->default('images/default.png');
        });
    }

模型:


    public $timestamps = false;
    protected $fillable = ['name', 'status', 'image_path'];

请求:

public function rules()
    {
        return [
            'name' => 'required',
            'image_path' => 'image',
        ];
    }

When a user updates a movie record and uploads a new image I want an older image to be deleted and a new one to be uploaded but if a movie has a default image I don't want to delete it (because other records with the default image won't have any after that) and just upload a new one during an update. And if a user doesn't upload anything then just keep a record with a default image like before while other parameters are getting updated. My code has some errors so here is the update function:

    public function update(StoreMovieRequest $request, Movie $movie)
    {
        $input = $request->all();

        if ($image = $request->file('image_path') || $movie->image_path != 'images/default.png') {
            $deleteImage = unlink(public_path(). '/' . $movie->image_path);
            $image = $request->file('image_path');
            $imageDestinationPath = 'images/';
            $movieImage = $imageDestinationPath . date('YmdHis') . "." . $image->getClientOriginalExtension();
            $image->move($imageDestinationPath, $movieImage);
            $input['image_path'] = "$movieImage";
        } elseif($image = $request->file('image_path') || $movie->image_path == 'images/default.png') {
            $image = $request->file('image_path');
            $imageDestinationPath = 'images/';
            $movieImage = $imageDestinationPath . date('YmdHis') . "." . $image->getClientOriginalExtension();
            $image->move($imageDestinationPath, $movieImage);
            $input['image_path'] = "$movieImage";
        }
        $movie->update($input);
}

My migration:

public function up()
    {
        Schema::create('movies', function (Blueprint $table) {
            $table->id();
            $table->string('name');
            $table->integer('status')->nullable()->default(0);
            $table->string('image_path')->default('images/default.png');
        });
    }

Model:


    public $timestamps = false;
    protected $fillable = ['name', 'status', 'image_path'];

Request:

public function rules()
    {
        return [
            'name' => 'required',
            'image_path' => 'image',
        ];
    }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文