Laravel传递可选变量以查看

时间:2019-03-20 11:11:52

标签: php laravel

我有一个可以在控制器中填充的变量,也可以不填充。

例如。

public function controllerMethod() {
   if($condition) {
     $var = "value";
   }

   return view("viewname",[
    "var" => $var
    ]
}

这给出了不确定的变量错误。

仅在存在的情况下如何通过它?

我知道我可以再做一次if语句,但是有没有更干净的方法?

5 个答案:

答案 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
}