我需要在控制器中创建一个函数,以显示由数据库确定的文件名的特定视图。 -laravel

问题描述 投票:0回答:1

我有一个默认页面和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'视为变量,因此在这种情况下它不返回我需要的内容文件名。

请注意,问题出在控制器,而不是预览。如果您转到预览前却找不到任何内容,它将显示默认文件。

什么是解决此问题的最佳方法,或者什么是正确的解决方法(如果有)?

php mysql laravel vue.js laravel-blade
1个回答
0
投票

使用double引号来解析变量,而不是单引号

© www.soinside.com 2019 - 2024. All rights reserved.