我有一个默认页面和4个模型的系统,可以更改这些模型,该模型对应的文件名在数据库中,这是我的问题开始的时间,因为我不能将变量确定返回视图()中的文件名,尽管变量位于同一函数中,但我知道问题不在于变量,它返回期望值,但是laravel无法以我尝试的方式识别它。
控制器
public function searchByName($name)
{
$company = Company::where('name', $name)->firstOrFail();
$personality = DB::table('personalities')->where('name', $name)->first();
$home_cp = DB::table('personalities')->select('index_company')->where('name', $name)->first();
$index_company = view('company.base.$home_cp');
return view('company.base.index', compact('company', 'name', 'personality', 'index_company'));
}
view
@if(isset($personality))
{{$index_company}}
@else
@include('company.base.default')
@endif;
erro
InvalidArgumentException
View [company.base.$home_cp] not found.
这里的问题是它说找不到页面,因为文件'$ home_cp'不存在,即它不将'$ home_cp'视为变量,因此在这种情况下它不返回我需要的内容文件名。
请注意,问题出在控制器,而不是预览。如果您转到预览前却找不到任何内容,它将显示默认文件。
什么是解决此问题的最佳方法,或者什么是正确的解决方法(如果有)?
使用double
引号来解析变量,而不是单引号