Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 刀片式快速IF语句的优雅方式_Php_Laravel_If Statement_Web_Blade - Fatal编程技术网

Php 刀片式快速IF语句的优雅方式

Php 刀片式快速IF语句的优雅方式,php,laravel,if-statement,web,blade,Php,Laravel,If Statement,Web,Blade,我对Laravel不熟悉,我知道我可以在双花括号内回传变量,如下所示: <p>{{ $posts->id }}</p> {{$posts->id} 现在在我的例子中,我有一个表单,它有时包含要更新的变量$posts(顺便说一句,它是表),有时不包含根据URL中的参数插入行的变量$posts 当然,如果没有post,那么“->id”部分将失败。 这里是否有一种优雅的方式来快速陈述IF,比如: <?php if ($posts) echo $posts["id

我对Laravel不熟悉,我知道我可以在双花括号内回传变量,如下所示:

<p>{{ $posts->id }}</p>
{{$posts->id}

现在在我的例子中,我有一个表单,它有时包含要更新的变量$posts(顺便说一句,它是表),有时不包含根据URL中的参数插入行的变量$posts

当然,如果没有post,那么“->id”部分将失败。 这里是否有一种优雅的方式来快速陈述IF,比如:

<?php if ($posts) echo $posts["id"]; ?>

但是仅仅使用刀片引擎


我知道我可以在HTML块中使用@if,但是我必须一直编写两次该块

这取决于什么是
$posts

可以使用三元语句。例如,如果
$posts
是集合或数组,请使用
empty

{{ empty($posts) ? '' : $posts->id }}
如果它只是变量,请使用
isset()

在某些情况下,可以使用
语法:

{{ $posts or 'It is empty' }}
在PHP7中,您可以使用
(空合并运算符)来检查变量
isset()
。例如:

{{ $posts ?? $posts->id }}

您可以在中看到另一个解释(请参见
回显数据(如果存在)。

这取决于
$posts
的确切含义

可以使用三元语句。例如,如果
$posts
是集合或数组,请使用
empty

{{ empty($posts) ? '' : $posts->id }}
如果它只是变量,请使用
isset()

在某些情况下,可以使用
语法:

{{ $posts or 'It is empty' }}
在PHP7中,您可以使用
(空合并运算符)来检查变量
isset()
。例如:

{{ $posts ?? $posts->id }}
您可以在中看到另一种解释(请参见
回显数据,如果它存在的话)。

另一种更类似于laravel的方法是helper

旧的
助手配合使用效果很好。

另一种更像“拉拉维尔式”的方法是助手


old
helper配合使用效果非常好。

$posts是Post::findOrFail的结果,我认为它只是JSON,Post是我表示数据库表的模型。
findOrFail()
如果找不到Post,则返回异常。改为使用
find()
where()->first()
,它将返回
null
。在这种情况下,您将能够使用三元运算符
{{is_null($post)'':$post->id}}
findOrFail()
不会返回json;它将返回一个对象(或在失败时抛出异常)$posts是Post::findOrFail的结果,我相信它只是JSON,Post是我表示数据库表的模型。
findOrFail()。改为使用
find()
where()->first()
,它将返回
null
。在这种情况下,您将能够使用三元运算符
{{is_null($post)'':$post->id}}
findOrFail()
不会返回json;它将返回一个对象(或在失败时抛出异常)