php - 我需要在 Controller 中创建一个函数来显示特定 View ,其文件名由数据库确定。 - 拉拉维尔

标签 php mysql laravel vue.js laravel-blade

我有一个系统,其中有一个默认页面和4个模型,这些模型可以更改,与模型对应的文件名在数据库中,这就是我的问题开始的时候,因为我不能放置变量确定 return view () 中的文件名,虽然变量位于同一函数内,但我知道问题不是变量,它返回预期值,但 laravel 无法按照我尝试的方式识别它。

Controller

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'));
}

查看

@if(isset($personality))
     {{$index_company}}
@else
        @include('company.base.default')
@endif;

错误

InvalidArgumentException
View [company.base.$home_cp] not found.

这里的问题是它说找不到页面,因为文件“$home_cp”不存在,即它不将“$home_cp”视为变量,因此它不会返回我在此需要的内容文件名大小写。

请注意,问题出在 Controller 上,而不是预览上。如果您进入预览并没有找到任何内容,它将显示默认文件。

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

最佳答案

使用双引号代替单引号来解析变量

$index_company = view('company.base.$home_cp');

应该是

$index_company = view("company.base.$home_cp");

关于php - 我需要在 Controller 中创建一个函数来显示特定 View ,其文件名由数据库确定。 - 拉拉维尔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58576574/

相关文章:

php - Behat 不使用最简单的测试

git - 如何将 Git 与 Laravel 分离的 "backend"和公共(public)文件夹一起使用?

javascript - 将 Json Javascript 格式转换为 PHP 可读格式

php - 是否可以将 JSON 私钥转换为 PKCS12 格式?

php - 自动增量不会更新

java - 无法连接到mysql数据库java

php - 如何为 Laravel 项目设置 Git Repo 在克隆后运行?

php - 查询根据一个字段的最大值和另一字段的特定值查找数据

PHP/MySQL - 登录系统 - SELECT 整个数据库是否聪明?

php - 检查mysql查询中的大写字母