HEX
Server: LiteSpeed
System: Linux s1049.use1.mysecurecloudhost.com 4.18.0-477.27.2.lve.el8.x86_64 #1 SMP Wed Oct 11 12:32:56 UTC 2023 x86_64
User: xedaptot (3356)
PHP: 8.3.31
Disabled: NONE
Upload Files
File: /home/xedaptot/iphim.naniguide.com/app/Http/Controllers/TitleTagsController.php
<?php

namespace App\Http\Controllers;

use App\Models\Title;
use Common\Core\BaseController;
use Illuminate\Support\Str;

class TitleTagsController extends BaseController
{
    public function store(Title $title, string $type)
    {
        $this->authorize('update', $title);

        $data = $this->validate(request(), [
            'tag_name' => 'required|string',
        ]);

        $relation = $this->getRelationName($type);

        $tags = $title
            ->$relation()
            ->getModel()
            ->insertOrRetrieve([$data['tag_name']]);

        $title->$relation()->syncWithoutDetaching($tags->pluck('id'));

        return $this->success();
    }

    public function destroy(Title $title, string $type, int $tagId)
    {
        $this->authorize('update', $title);

        $relation = $this->getRelationName($type);

        $title->$relation()->detach([$tagId]);

        return $this->success();
    }

    private function getRelationName($type)
    {
        return Str::plural(Str::camel($type));
    }
}