我有两个表用户其模型(用户)...并维护它的模型(servs)....关系是一对多....当我尝试选择属于一个用户的所有服务。 ...它只选择第一项服务而忽略其他服务......这是我用过的代码
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;
}
}
}
答案 0 :(得分:0)
不应该在第一个循环中返回数据,而应该更好地执行以下操作:
$result = array();
foreach ($serv as $servs) {
$result[] = $servs->serv_id;
}
return $result;
答案 1 :(得分:0)
试试这个。
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;
}
答案 2 :(得分:0)
您只能看到第一个,因为当您返回某个内容时,该功能会结束,$serv
的其余部分将无法处理。
我建议您先正确设置Eloquent relations
class User extends Eloquent {
public function servs(){
return $this->hasMany('servs');
}
}
之后,您可以为这样的用户检索所有服务:
$user = Auth::user();
$servs = $user->servs;
foreach ($servs as $serv) {
echo $serv->serv_id;
}