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"
正如您所看到的,这不是一个数组,因此我不确定如何拆分这三组字符串。谁能告诉我如何在刀片中输出这个而不是作为集合。我的意思是一次一个主题。我只想显示我选择的一个。例如。只是'橄榄球'。 (Laravel 4.2)
顺便提一下,下面的代码定义了TableOne和TableTwo之间的多对多关系。
public function usersubject(){
return $this->belongsToMany('SubjectList', 'subjectlists_user', 'name_id', 'Topic_id');
}
提前致谢
答案 0 :(得分:0)
不得不以回复而非评论的方式发帖。
$authuser->usersubject->toArray()
上面的代码将为您提供一个对象数组而不是一个集合。但是,如果从数据库加载这些内容,您将如何取消变量?如果您尝试列出用户未选择的选项。你可以试试。
DB::table('SubjectList')->whereNotIn('id', array(1, 2, 3))->get();