我有一个可以在控制器中填充的变量,也可以不填充。
例如。
public function controllerMethod() {
if($condition) {
$var = "value";
}
return view("viewname",[
"var" => $var
]
}
这给出了不确定的变量错误。
仅在存在的情况下如何通过它?
我知道我可以再做一次if语句,但是有没有更干净的方法?
答案 0 :(得分:3)
如果要有条件地发送参数,只需将其添加到要满足以下条件的array
中:
public function controllerMethod() {
$parameters = [];
if ($condition) {
$parameters['var'] = "value";
}
return view("viewname",$parameters);
}
答案 1 :(得分:0)
在条件为真时要取决于选择要在视图中显示的内容 在您的控制器内部。您可以在控制器和视图中进行处理。 如果控制器中的条件错误并且未发生未定义的错误,则下面的代码将显示“找不到结果”。
public function controllerMethod() {
if($condition)
{
$var = "value";
}
else
{
$var = "Result not found";
}
return view("viewname",
[
"var" => $var
]
}
答案 2 :(得分:0)
使用isset
:
if (isset($var)) {
return view("viewname", [
"var" => $var
];
}
答案 3 :(得分:0)
您可以尝试
Controller
public function controllerMethod()
{
if($condition) {
$var = "value";
}
return view("viewname", compact('var', 'abc')); // you can pass multiple variables
}
Blade File
@if(isset($var))
//if condition
@else
//else condition
@endif
OR
Controller
public function controllerMethod()
{
$var = null;
if($condition) {
$var = "value";
}
return view("viewname", compact('var')); // you can pass multiple variables
}
Blade File
@if($var)
//if condition
@else
//else condition
@endif
答案 4 :(得分:0)
public function controllerMethod() {
$var="";
if($condition) {
$var = "value";
}
return view("viewname",[
"var" => $var
]
}
在用户界面上,进行如下检查:
if (!empty($var)){
//whatever you wanna do with your $var
}