Laravelを使用してウェブログを作成します。各投稿には多くのタグがあります。 私は新しいタグ格納する方法と、タグのコントローラがあります。この場合Laravelの他のコントローラから新しいモデルインスタンスを保存するベストプラクティス
class TagController extends Controller
{
public function store($title){
return Tag::firstOrCreate(['title'=>$title]);
}
}
を、私はのPostControllerからこのメソッドを呼び出す必要があります:
class PostController extends Controller
...
protected function createTagsObjects(string $csvTags){
$tagsArray=explode(',',$csvTags);
$tagsArray=array_unique($tagsArray);
foreach($tagsArray as $tag){
//call to tag controller->store
}
}
}
私はそれがコントローラを呼び出すことをお勧めではないことを知っていますメソッドを別のコントローラから取得します。 私はネットをサーフィンし、私は特性やサービスを知りました。しかし、私は彼らが私の問題に役立つとは思わない。このシナリオは非常に頻繁に起こります。 これらの状況を処理するベストプラクティスは何ですか?おかげさまで
形質を使用するのが最良です。私はそれらを使用しない理由がないか、または 'Controller'クラスの中で' createTagsObjects'を取ることができます。 –
@RazaMehdiもしあなたがこれのために形質を実装したいのであれば、それはどうですか? – mjkhonline
このスレッドを参照してください:https://stackoverflow.com/questions/7892749/traits-in-php-any-real-world-examples-best-practices –