简单地说,你想要做的,可以做的事情如下所示。
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
的优点。
Model
哪个有getCategory
方法有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;
}
您可以访问category_ids
具有通过$this
例如1,2,3
值,因此它不需要argument
。
要有效地做到这一点,您可以在另一个模型中使用category_id
属性。
在这种情况下,你可以做得更简单。
参考: https://laravel.com/docs/5.4/eloquent-relationships#many-to-many
你解决了我的问题...非常感谢... –
不客气!我很高兴问题解决了。 – Yujiro