当前位置: 首页 > 知识库问答 >
问题:

Laravel 4:公共函数返回空数据或模型数据,具体取决于哪个控制器调用它?

卜勇
2023-03-14

我有一个UserProfile模型与相关的表user_profiles有一些字段,如名称,user_id,联系人。在模型中有一个函数,它使用雄辩的ORM检索这些数据,并在返回配置文件对象之前向其添加一个额外的属性“省份”。

class UserProfile extends Eloquent {
    //....preceding methods ommitted
    public function totalProfile($userid) {
        $profile = $this->find($userid);
        $profile->provinces = Province::all();
        return $profile;
    }
}

当我从UserProfilesController调用上述函数时,它会毫无问题地返回配置文件,但当我尝试从PagesController调用该方法时,它只会返回空,如下所示:

class PagesController extends \BaseController {
    public function __contstruct(UserProfile $userProfile) {
        $this->userProfile = $userProfile;
    }
    public function show($id) {
        print_r($this->userProfile->totalProfile($id)); //prints nothing
        die;
    }
}

如果有人能帮我解释为什么会这样,我会非常感激的?非常感谢你!

共有1个答案

白泽语
2023-03-14

我不知道为什么你认为这属于你的模型,但是如果你这样做了,用这个:

型号:

class UserProfile extends Eloquent {

    protected $appends = ['provinces'];

    public function getProvincesAttribute()
    {
        return Province::all();
    }

}

控制器:

class PagesController extends \BaseController {

    public function __contstruct(UserProfile $userProfile)
    {
        $this->userProfile = $userProfile;
    }

    public function show($id)
    {
        return Response::json($this->userProfile->find($id));
    }
}
 类似资料:
  • 问题内容: 这个问题已经在这里有了答案 : 如何从异步调用返回响应? (39个答案) 7年前关闭。 我想创建一个JavaScript函数,该函数返回jQuery AJAX调用的值。我想要这样的东西。 我知道我可以通过将async设置为false来做到这一点,但我宁愿不这样做。 问题答案: 使用jQuery 1.5,您可以使用全新的功能,正是为此目的而设计的。 资源

  • 在本节中,您将创建一个新的MoviesController类,并在这个Controller类里编写代码来取得电影数据,并使用视图模板将数据展示在浏览器里。 在开始下一步前,先Build一下应用程序(生成应用程序)(确保应用程序编译没有问题) 在解决方案上,用鼠标右键单击Controller文件夹,点击新增,再选择Controller。 在Scaffold新增对话框,选择MVC 5 Controll

  • 我正在使用: Python 3.6.8 火花2.4.4 我在spark类路径中有以下JAR: http://repo1.maven.org/maven2/com/databricks/spark-redshift_2.11/2.0.1/spark-redshift_2.11-2.0.1.jar http://repo1.maven.org/maven2/com/databricks/spark-a

  • 问题内容: 我试图创建一个服务来获取json并将其传递给我homeCtrl我可以获取数据,但是当将其传递给我的homeCtrl时,它总是返回undefined。我卡住了。 我的服务: 我的家庭控制器: 问题答案: 您应该从函数返回promise ,当它被解析后,它应该从该函数返回。 厂 同样在控制器内部,您应该调用factory函数,并在service函数解析该调用并将其分配给 码

  • 问题内容: 我是AngularJS的新手,在这里我很茫然。 现在,我的MVC程序使用Razor来显示.mdf数据库中的所有数据(即 @ Html.DisplayFor(modelItem = > item.LastName) )。但是,我想主要使用Angular。我正在尝试使用ng- repeat显示所有Model数据,但是我不确定如何将那个Model数据传递给Angular控制器然后使用它。我曾