gpt4 book ai didi

助手中的 Laravel 访问 Blade 变量

转载 作者:行者123 更新时间:2023-12-01 13:21:07 34 4
gpt4 key购买 nike

我有一个共享给所有 View 的公共(public)变量 $publisher:

$view->with('publisher', $publisher);

示例:我想检查这个发布者是否命名为“main”并且状态是否为“active”,因此我必须在 blade 中这样写 if 语句:

@if ($publisher->name == 'main' && $publisher->status == 'active')
// Code here
@endif

所有 Blade 文件都复制了它,因此我在 app/Helpers/general.php 中创建了一个自定义帮助文件,将其命名为 isMainPublisher($publisher):

function isMainPublisher($publisher) 
{
return ($publisher->name == 'main' && $publisher->status == 'active') ? true: false;
}

Blade 式 if 语句将更改为:

@if (isMainPublisher($publisher))
// Code here
@endif

我正在考虑将 Blade 代码缩短为:

@if (isMainPublisher())
// Code here
@endif

但是 app/Helpers/general.php 不会访问 blade 变量 $publisher,有没有办法或者实际上没有办法在 helper 中访问 blade 变量?谢谢。

最佳答案

本质上,如果不在帮助类的内部变量上设置发布者名称,isMainPublisher($publisher) 是您的最佳选择,而且它的方式比其他选项更惯用。

为了让 isMainPublisher() 工作(可能),您将不得不使用一个 hacky 全局声明,即使那样,它也可能无法工作,因为它对类不可用

或者,您可以将助手作为方法添加到模型中:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Publisher extends Model
{
// Your new helper method
public function isMain()
{
// some logic to determine if the publisher is main
return ($this->name == "main" || $this->name == "blah");
}
}

...然后这样调用它:

$publisher->isMain();

在我看来,这是更好的选择,因为它读起来就像您所说的那样。

希望对您有所帮助!

关于助手中的 Laravel 访问 Blade 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49933898/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com