如何使用边栏选项卡查看多对多关系中的字符串


How to view strings from a many-to-many relationship using blade

TableOne
id|Topic
1 |football
2 |Rugby
3 |Cricket
4 |Tennis
TableTwo
id|name
1 |bill
2 |tom
3 |Sally
PivotTable
id|name_id|Topic_id
1 |2      |2
2 |2      |3
3 |2      |4
4 |3      |1
5 |1      |4

首先,通过查看下面的代码,我已经定义了经过身份验证的用户"tom"。从上面的表格中,我有以下代码:

 $authuser = Auth::User(); //tom
 foreach ($authuser->usersubject as $chosensubjectname)
  {
      var_dump($chosensubjectname->name);
      }

当我将其输出到浏览器时,上面的代码给了我以下输出:

string(5) "Rugby"  string(7) "Cricket"  string(6) "Tennis"

如您所见,这不是一个数组,因此我不确定如何拆分这 3 组字符串。任何人都可以告诉我如何在刀片中输出它而不是作为集合。我的意思是一次一个主题。我只想显示我选择的一个。例如,只是"橄榄球"。(拉拉维尔 4.2(

顺便说一下,下面的代码定义了表一和表二之间的多对多关系。

 public function usersubject(){
        return $this->belongsToMany('SubjectList', 'subjectlists_user', 'name_id', 'Topic_id');
}

提前致谢

必须作为回复而不是评论发布。

$authuser->usersubject->toArray()

上面的代码将为您提供一个对象数组,而不是一个集合。但是,如果您从数据库加载这些变量,您将如何取消设置变量?如果您尝试列出用户尚未选择的选项。你可以试试。

DB::table('SubjectList')->whereNotIn('id', array(1, 2, 3))->get();