ようになり一つの変数に私は、このIDの名前を返すようにしたい文字列
です次のように。
public function getCategory($categoryIds) // ex) 1,2,3
{
$categoryIdArray = explode(",", $categoryIds); // [1,2,3]
$categoryName = '';
foreach ($categoryIdArray as $categoryId){
$category = DB::table('categories')->where('id',$categoryId)->first();
$categoryName .= $category->name . ',';
}
$categoryName = substr($categoryName, 0, -1);
return $categoryName;
}
しかし、上記の例では、Model
の利点を利用していません。
getCategory
メソッドを持つModel
はcategory_ids
属性を持っていますか?
そうであれば、次のように書くことができます。
public function getCategory()
{
$categoryIdArray = explode(",", $this->category_ids);
$categoryName = '';
foreach ($categoryIdArray as $categoryId){
$category = DB::table('categories')->where('id',$categoryId)->first();
$categoryName .= $category->name . ',';
}
$categoryName = substr($categoryName, 0, -1);
return $categoryName;
}
あなたはそれがargument
を必要としないので、$this
経由でインスタンスの1,2,3
値を持つcategory_ids
にアクセスすることができます。
さらに効果的に行うには、category_id
属性を別のモデルに含めることができます。
この場合、上記をより簡単に行うことができます。
参考: https://laravel.com/docs/5.4/eloquent-relationships#many-to-many
あなたは私の問題を解決します...ありがとうございました... –
よろしくお願いします!問題が解決してうれしいです。 – Yujiro