我正在通过Compact()将多个变量从控制器传递到视图,视图中可以访问其中的3个变量,其余变量给出错误“未定义的变量:”。使用compact()或with()将变量传递给视图是否有限制?
```
CONTROLLER:
class HomePageController extends Controller
{
public function ShowAdminHomePage()
{
$homesection1 = HomeSection1::all();
$homesection2 = HomeSection2::all();
$homesection3 = HomeSection3::all();
$h_s3title = HomeSection3Title::all();
$count_s1 = HomeSection1::count();
$count_s2 = HomeSection2::count();
$count_s3 = HomeSection3::count();
return view::('backend.page.home.index')->with($homesection1,$homesection2,$homesection3,$count_s1,$count_s2,$count_s2,$count_s3);
return view('backend.page.home.index', compact('homesection1','homesection2','count_s1','count_s2','homesection3','h_s3title'));
}
```
```
VIEW:
@foreach ($homesection3 as $s3)
<div class="col-sm-6 col-lg-3 mt-30">
<div class="feature-box bg-white shadow-hover border-radius-3 f-style-5 h-100 icon-grad">
<div class="feature-box-icon"><i class="ti-panel"></i></div>
<h3 class="feature-box-title">{{$s3->name}}</h3>
<p class="feature-box-desc">{{ $s3->description }}</p>
</div>
</div>
@endforeach
```
我能够获取$ homesectio1,$ homesectio2,$ count_s1和$ count_s2的数据,但是$ homesection3和$ h_s3title给出了错误:未定义变量
答案 0 :(得分:1)
不,php new Promise
没有限制。
我建议您保留最后一个return语句,确保在添加变量以使其紧凑或尝试在视图中使用它时没有任何错字。还要检查在零件使用$ homesection3之前的视图中的代码是否正确设置。
答案 1 :(得分:1)
函数结束时您将返回两次。
Could not find or load main class Files\DataStax-DDC\apache-cassandra\\conf\hotspot_compiler
将仅执行第一个返回。这样,您传递的变量return view::('backend.page.home.index')->with($homesection1,$homesection2,$homesection3,$count_s1,$count_s2,$count_s2,$count_s3);
return view('backend.page.home.index', compact('homesection1','homesection2','count_s1','count_s2','homesection3','h_s3title'));}
就不会传递给视图。
因此您应该修正您的声明以完成这项工作。
每个功能只能返回一次。
尝试一下
$h_s3title
更新:
如@kkyeboah所述,紧凑型没有限制。
不,PHP紧凑版没有限制。
让我知道这是否适合您!
答案 2 :(得分:0)
您 send with compact
您应设置以下键和值:
return view('backend.page.home.index', compact(['homesection1'=>$homesection1,
'homesection2'=>$homesection2,
'count_s1'=>$count_s1,
'count_s2'=>$count_s2,
'homesection3'=>$homesection3,
'h_s3title'=>$h_s3title]);