首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel 8组件

Laravel 8组件
EN

Stack Overflow用户
提问于 2021-03-14 21:03:26
回答 1查看 706关注 0票数 1

我正在尝试创建一个组件,并发送一些数据。

代码语言:javascript
复制
<div class="card">
    <div class="card-wrapper">
        <div class="card-header">
            <div class="card-title">
                <i class="fa fa-pie-{{ $icon ?? '' }} fa-fw"></i>
                <span>{{ $title ?? '' }}</span>
            </div>
            <div class="card-version">
                <i class="fa fa-question-circle fa-fw"></i>
            </div>
        </div>
        <div class="card-body">
            {{ $content ?? '' }}
        </div>
    </div>
</div>

然后,我在Blade中调用该组件

代码语言:javascript
复制
<x-com-card icon="globe" title="Test"> </x-com-card>

但是我得到了以下错误

未定义变量$icon

我的组件控制器如下所示

代码语言:javascript
复制
<?php

namespace App\View\Components;

use Illuminate\View\Component;

class ComCard extends Component
{
    private $icon;
    private $title;

    /**
     * Create a new component instance.
     *
     * @param $icon
     * @param $title
     */
    public function __construct($icon, $title)
    {
        $this->icon = $icon;
        $this->title = $title;
    }

    /**
     * Get the view / contents that represent the component.
     *
     * @return \Illuminate\Contracts\View\View|string
     */
    public function render()
    {
        return view('com.card');
    }
}

知道为什么会这样吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-14 21:05:52

这是因为您将属性设置为私有属性,而视图无法访问它们。

在呈现组件时,可以通过按名称回显组件的公共变量的内容

代码语言:javascript
复制
public $icon;
public $title;

更多您可以在官方文档中找到这里

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66629537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档