Tworzymy własny service
Tworzymy service aby wyekstrahować logikę do osobnego pliku.Tworzymy app/Services/TagsParsingService.php
Takie podejście ułatwia prace z kodem i pomaga utrzymać porządek. Tu znajduje sie cześć kody który za to odpowiada...wyeksportowana do osobnego pliku.
<?php
namespace App\Services;
//Pamiętajmy o dodaniu namespace
use App\Models\Tag;
//tu możemy używać model
class TagsParsingService
{
public static function parse($text)
{
$list = preg_split('/ +/', $text);
$ids = [];
foreach ($list as $tag) {
$tag = Tag::firstOrCreate(['name' => $tag]);
$ids[] = $tag->id;
}
return $ids;
}
}
Aby teraz użyć takiego service importujemy go za pomocą use do pliku w którym chcemy go używać
namespace App\Http\Controllers\Admin;
use App\Models\Post;
use App\Services\TagsParsingService;
i odwołujemy się jak do metody statycznej
if (isset($data['tags'])) {
$tags = TagsParsingService::parse($data['tags']);
$post->tags()->sync($tags);
}
Add comment