Php laravel4按关系(一对多)从其他表中选择所有数据
我有两个表用户它的模型(用户)。。。和服务it模型(servs)。。。。这种关系是一对多的。。。。当我尝试选择属于一个用户的所有服务时。。。。它只选择第一个服务,而忽略其他服务。。。这是我用过的代码Php laravel4按关系(一对多)从其他表中选择所有数据,php,mysql,laravel,Php,Mysql,Laravel,我有两个表用户它的模型(用户)。。。和服务it模型(servs)。。。。这种关系是一对多的。。。。当我尝试选择属于一个用户的所有服务时。。。。它只选择第一个服务,而忽略其他服务。。。这是我用过的代码 public function getserv(){ return View::make('infos.serv'); } public function postserv(){ $user = User::find(Auth::user()
public function getserv(){
return View::make('infos.serv');
}
public function postserv(){
$user = User::find(Auth::user()->id);
$user_id = $user->id;
$serv = servs::where('user_id','=',$user_id);
if($serv->count()){
$serv = $serv->get();
//return $serv->user_id;
foreach ($serv as $servs) {
return $servs->serv_id;
}
}
}
与其在第一个循环中返回数据,不如执行以下操作:
$result = array();
foreach ($serv as $servs) {
$result[] = $servs->serv_id;
}
return $result;
$user = Auth::user();
$servs = $user->servs;
foreach ($servs as $serv) {
echo $serv->serv_id;
}
试试这个
public function postserv(){
$user = User::find(Auth::user()->id);
$user_id = $user->id;
$serv = servs::where('user_id','=',$user_id)->get()->first;
if($serv)
return $serv->serv_id;
else
return null;
}
您只会看到第一个,因为当您返回某个内容时,函数将结束,
$serv
的其余部分不会得到处理
我建议您首先正确设置
之后,您可以检索用户的所有服务,如下所示:
$result = array();
foreach ($serv as $servs) {
$result[] = $servs->serv_id;
}
return $result;
$user = Auth::user();
$servs = $user->servs;
foreach ($servs as $serv) {
echo $serv->serv_id;
}
当然,因为当您
返回
某个内容时,函数将结束,$serv
的其余部分不会得到处理。