如果@include 中存在变量,则检查刀片
Posted
技术标签:
【中文标题】如果@include 中存在变量,则检查刀片【英文标题】:check in blade if exists variable in @include 【发布时间】:2021-09-08 14:21:03 【问题描述】:我正在使用 laravel 7.4 开发一个系统,我需要检查我从控制器发送的一个变量是否存在于我的刀片中。如果存在,包括它:
我的控制器中有这段代码:
public function index()
//Store Image
$newsItem = User::find(Auth::user()->id);
if($newsItem->hasMedia('userPhoto'))
$profilePhoto = $newsItem->getMedia('userPhoto')[0]->file_name;
$idPhoto = $newsItem->getMedia('userPhoto')[0]->id;
return view('home')->with('idPhoto', $idPhoto)
->with('profilePhoto', $profilePhoto);
else if($newsItem->hasMedia('logoSystem'))
$logoSystem = $newsItem->getMedia('logoSystem')[0]->file_name;
$idPhotoLogo = $newsItem->getMedia('logoSystem')[0]->id;
return view('home')->with('idPhotoLogo', $idPhotoLogo)
->with('logoSystem', $logoSystem);
else
return view('home');
if($newsItem->getMedia('userPhoto') && $newsItem->getMedia('logoSystem'))
return view('home')->with('idPhoto', $idPhoto)
->with('profilePhoto', $profilePhoto)
->with('idPhotoLogo', $idPhotoLogo)
->with('logoSystem', $logoSystem);
此返回 profile image
或 system image
但可能此图像不存在,我需要先检查一下,因为我的系统有错误,我无法显示我的视图。
之后在我的视图中使用这段代码,我用这条路线创建了一个图像:
-- asset('storage/'.$idPhoto."/".$profilePhoto) --
但之前我需要将此变量发送到我的视图head
并在之后发送到我的侧边栏。
我正在准备这样做:
home.blade.php
@include('layouts.head', (isset([$idPhoto])) ? ["idPhoto" => $idPhoto, "idPhotoLogo" => $idPhotoLogo] : '')
head.blade.php
@include('layouts.sidebar', ["idPhoto", $idPhoto, "idPhotoLogo" => $idPhotoLogo])
并在我的侧边栏中创建了我的图像:
<img src="-- asset('storage/'.$idPhoto."/".$profilePhoto) --" class="brand-image">
更新
现在我有这个错误:
在我的 head.blade.php 我有这个:
@if(isset([$idPhoto])
@include('layouts.sidebar', ["idPhoto", $idPhoto, "idPhotoLogo" => $idPhotoLogo])
@else
@include('layouts.sidebar')
@endif
在我的 home.blade.php 我有这个
@if(isset([$idPhoto])
@include('layouts.head',["idPhoto" => $idPhoto, "idPhotoLogo" => $idPhotoLogo])
@else
@include('layouts.head')
@endif
这个回报:
syntax error, unexpected token ":", expecting "(" (View: C:\wamp64\www\clinicaCampoy\resources\views\home.blade.php)
我需要做的是,如果表格媒体是空的,则加载默认图像,但如果表格媒体有徽标或图像系统,则加载此图像
【问题讨论】:
【参考方案1】:你可以使用 if 条件
@if(isset($idPhoto))
@include('layouts.head',["idPhoto" => $idPhoto, "idPhotoLogo" => $idPhotoLogo])
@endif
【讨论】:
感谢您的回复,但请返回:Cannot use isset() on the result of an expression(您可以改用“null !== expression”) @scorpions78.updated 有两个选项。让我看看哪一个适合你 我用你的代码的实际问题编辑了我的问题 如果我使用你的第一个代码,我有这个:未定义的变量 $idPhoto(查看: 如果条件更新 .@if(isset([$idPhoto]))以上是关于如果@include 中存在变量,则检查刀片的主要内容,如果未能解决你的问题,请参考以下文章
检查模板中是不是存在变量,如果不存在则不会在记录器中导致错误
检查某个类别中是不是存在帖子不起作用。 php,刀片,Laravel