Laravel 7 组件中的未定义变量
Posted
技术标签:
【中文标题】Laravel 7 组件中的未定义变量【英文标题】:Undefined Variable in Laravel 7 Components 【发布时间】:2020-07-02 00:54:11 【问题描述】:我有一个奇怪的问题,我正在为要在组件中显示的 Laravel 7 组件设置一个变量。虽然它在我的开发环境(MacOS 上的 MAMP)中工作,但当我将它加载到 HostGator 中的共享主机时它不起作用。在 HostGator 中,它会引发 500 错误,抱怨“未定义的变量:page_title”。
关于这里可能发生什么的任何想法?
App/Components/Layout/ContentHeader.php
class ContentHeader extends Component
public $page_title;
public $breadcrumbs = [];
/**
* Create a new component instance.
*
* @return void
*/
public function __construct()
$this->page_title = 'Some title';
$crumb = new \stdClass();
$crumb->label = 'Home';
$crumb->active = false;
$this->breadcrumbs[] = $crumb;
$crumb = new \stdClass();
$crumb->label = $this->page_title;
$crumb->active = true;
$this->breadcrumbs[] = $crumb;
/**
* Get the view / contents that represent the component.
*
* @return \Illuminate\View\View|string
*/
public function render()
return view('components.layout.content-header');
<!-- Resources/views/components/layout/content-header.blade.php -->
<div class="content-header">
<div class="container-fluid">
<div class="row mb-2">
<div class="col-sm-6">
<h1 class="m-0 text-dark"> $page_title </h1>
</div><!-- /.col -->
<div class="col-sm-6">
<ol class="breadcrumb float-sm-right">
@foreach ($breadcrumbs as $crumb)
@if (!$crumb->active)
<li class="breadcrumb-item"><a href="#"> $crumb->label </a></li>
@else
<li class="breadcrumb-item active"> $crumb->label </li>
@endif
@endforeach
</ol>
</div><!-- /.col -->
</div><!-- /.row -->
</div><!-- /.container-fluid -->
</div>
<!-- /.content-header -->```
【问题讨论】:
如何在视图中定义组件标签? 您找到解决方案了吗?我有同样的问题。谢谢。 【参考方案1】:在 GitHub 上有一个完整的讨论。解决方法很简单
你的组件控制器是小写的,应该是大写的。去这里conversation
【讨论】:
链接可能会被破坏,以防万一您也可以在这里复制相关对话吗?【参考方案2】:我之前也遇到过同样的问题。我的错误是我的组件的小写名称。首先应该是大写,然后我还必须将命名空间更改为大写。接下来我必须清除 laravel 视图
php 工匠视图:清除
【讨论】:
以上是关于Laravel 7 组件中的未定义变量的主要内容,如果未能解决你的问题,请参考以下文章