通过Laravel中的控制器将变量传递到视图

dluptydi  于 2022-11-18  发布在  其他
关注(0)|答案(2)|浏览(179)

我需要帮助传递使用__construct()初始化的变量,以便在Laravel中查看。
这是我的控制器代码

protected $profileInfo;

public function __construct(){
   $this->profileInfo = Profile::with('address')->where('id', '=', '1')->get();
}
public function index(){
  $this->profileInfo;
  return view('admin_pages.profile', compact('profileInfo'));
}

出现错误undefined variable profileInfo

j2cgzkjk

j2cgzkjk1#

使用compact()时,所用参数必须定义为变量:

protected $profileInfo;

public function __construct(){
   $this->profileInfo = Profile::with('address')->where('id', '=', '1')->get();
}
public function index(){
  $profileInfo = $this->profileInfo;
  return view('admin_pages.profile', compact('profileInfo'));
}

在本例中,compact()将创建如下所示的数组:

[ 'profileInfo' => $this->profileInfo ]
1sbrub3j

1sbrub3j2#

compact()在当前符号表中查找具有该名称的变量,并将其添加到输出数组中,这样,变量名将成为键,变量的内容将成为该键的值。
您可以不使用compact,而是像这样传递数组:

protected $profileInfo;

public function __construct(){
   $this->profileInfo = Profile::with('address')->where('id', '=', '1')->get();
}

public function index(){
  return view('admin_pages.profile', ['profileInfo' => $this->profileInfo]);
}

相关问题