如何在laravel模型中使用if语句

如何在laravel模型中使用if语句,laravel,model,builder,Laravel,Model,Builder,我在模型中使用builder并在blade中打印数据 问题是我的数据以短名称存储在数据库中,所以我希望在blade中打印时写入实际名称,而不仅仅是返回这些短名称,而且我无法让if语句在我的生成器中工作 代码 有什么想法吗 更新 好的,我想我的刀片中有一个问题,我出错了,但现在我的刀片加载了,我得到的数据如下: 现行代码 现在我明白了 syntax error, unexpected 'if' (T_IF) 在 您错过了一些“和”,请尝试以下内容 public function

我在模型中使用builder并在blade中打印数据

问题是我的数据以短名称存储在数据库中,所以我希望在blade中打印时写入实际名称,而不仅仅是返回这些短名称,而且我无法让if语句在我的生成器中工作

代码 有什么想法吗

更新 好的,我想我的刀片中有一个问题,我出错了,但现在我的刀片加载了,我得到的数据如下:

现行代码 现在我明白了

syntax error, unexpected 'if' (T_IF)

您错过了一些“和”,请尝试以下内容

        public function buildFooter($footer, $positionid = 'footer'){
            $result = null;
            foreach($footer as $item)
                if($item->type == $positionid) {
                    $result .= "<li class='dd-item nested-list-item' data-position='{$item->position}' data-id='{$item->id}'>";
                    $result .= "<div class='dd-handle nested-list-handle'><i class='fas fa-arrows-alt'></i></div><div class='nested-list-content'>";
                    if ($item->widget == 'feature-posts'){
                         $result .= "Feature Posts";
                    } elseif ($item->widget == 'feature-posts-sidebar') {
                         $result .= "Feature Posts (Sidebar)";
                    } elseif ($item->widget == 'top-categories-posts') {
                         $result .= "Top Categories (By Posts)";
                    } elseif ($item->widget == 'top-categories-visits') {
                         $result .= "Top Categories (By Visits)";
                    } else {
                         $result .= "Popular Posts";
                    }
                    $result .="-".$item->status;
                    $result .="<div class='float-right'><a href='#' class='delete_toggle text-danger' rel='{$item->id}'>Delete</a></div></div>".$this->buildFooter($footer, $item->id) . "</li>";
                  }
             return $result ?  "\n<ol class=\"dd-list\">\n$result</ol>\n" : null;
        }
公共函数buildFooter($footer,$positionid='footer'){
$result=null;
foreach($footer作为$item)
如果($item->type==$positionid){
$result.=“
  • ”; $result.=”; 如果($item->widget=='featureposts'){ $result.=“专题文章”; }elseif($item->widget=='featureposts侧边栏'){ $result.=“专题文章(侧边栏)”; }elseif($item->widget=='top categories posts'){ $result.=“顶级类别(按职位)”; }elseif($item->widget=='top categories visions'){ $result.=“顶级类别(按访问次数)”; }否则{ $result.=“热门帖子”; } $result.=“-”$item->status; $result.=''.$this->buildFooter($footer,$item->id)。“
  • ”; } 返回$result?\n\n$result\n:空; }
    你能试试这个吗

    我相信还有其他方法可以实现这一点。您的方法是将视图和控制器操作混为一谈

    <?php 
    
    public function buildFooter($footer, $positionid = 'footer') 
        { 
          $result = null;
          foreach($footer as $item) 
            if($item->type == $positionid) {
              $result .= "
              <li class='dd-item nested-list-item' data-position='"
              . $item->position
              ."' data-id='".$item->id."'>
              <div class='dd-handle nested-list-handle'>
                <i class='fas fa-arrows-alt'></i>
              </div>
              <div class='nested-list-content'>";
    //if part
                if($item->widget == 'feature-posts'):
                    $result .= "Feature Posts";
                elseif($item->widget == 'feature-posts-sidebar'):
                    $result .= "Feature Posts (Sidebar)";
                elseif($item->widget == 'top-categories-posts'):
                    $result .= "Top Categories (By Posts)";
                elseif($item->widget == 'top-categories-visits'):
                    $result .= "Top Categories (By Visits)";
                else:
                    $result .= "Popular Posts";
                endif;
    // if part
            $result .= "- " . $item->status
                ."<div class='float-right'>
                  <a href=''>Edit</a> |
                  <a href='#' class='delete_toggle' rel='{$item->id}'>Delete</a>
                </div>
              </div>".$this->buildFooter($footer, $item->id) . "</li>"; 
            }
          return $result ?  "\n<ol class=\"dd-list\">\n".$result."</ol>\n" : null; 
        }
    
    // Getter for the HTML menu builder
    public function getHTMLFooter($items)
    {
        return $this->buildFooter($items);
    }
    

    您不使用刀片模板有什么特别的原因吗?在刀片视图文件中,通过@if($conditions)…@endif来实现这些模板要容易得多。是的,原因是我使用jquery nestabe的方式,我只是使
    {!!$xxxxx!!}
    我的可嵌套表单已经准备好使用了。您似乎在
    之后缺少了一个双引号。这就是语句按原样打印的原因…您应该将$resutlt分为3部分连接起来(如果语句作为中间部分)。我现在得到了
    语法错误,意外的“if”(T\u if)
    @JohnDoe知道吗?我检查了没有
    {
    打开。它在这种情况下工作
    $result.=“-”$item->status
    已更新。请检查..我建议您阅读有关刀片模板和控制器的Laravel文档。。。
    //code
    
    <div class='nested-list-content'>".
                if ($item->widget == 'feature-posts'){
                    'Feature Posts'
                } elseif ($item->widget == 'feature-posts-sidebar') {
                    'Feature Posts (Sidebar)'
                } elseif ($item->widget == 'top-categories-posts') {
                    'Top Categories (By Posts)'
                } elseif ($item->widget == 'top-categories-visits') {
                    'Top Categories (By Visits)'
                } else {
                    'Popular Posts'
                }
                - {$item->status}
                ."<div class='float-right'>
    //code
    
    syntax error, unexpected 'if' (T_IF)
    
    if ($item->widget == 'feature-posts'){
    
            public function buildFooter($footer, $positionid = 'footer'){
                $result = null;
                foreach($footer as $item)
                    if($item->type == $positionid) {
                        $result .= "<li class='dd-item nested-list-item' data-position='{$item->position}' data-id='{$item->id}'>";
                        $result .= "<div class='dd-handle nested-list-handle'><i class='fas fa-arrows-alt'></i></div><div class='nested-list-content'>";
                        if ($item->widget == 'feature-posts'){
                             $result .= "Feature Posts";
                        } elseif ($item->widget == 'feature-posts-sidebar') {
                             $result .= "Feature Posts (Sidebar)";
                        } elseif ($item->widget == 'top-categories-posts') {
                             $result .= "Top Categories (By Posts)";
                        } elseif ($item->widget == 'top-categories-visits') {
                             $result .= "Top Categories (By Visits)";
                        } else {
                             $result .= "Popular Posts";
                        }
                        $result .="-".$item->status;
                        $result .="<div class='float-right'><a href='#' class='delete_toggle text-danger' rel='{$item->id}'>Delete</a></div></div>".$this->buildFooter($footer, $item->id) . "</li>";
                      }
                 return $result ?  "\n<ol class=\"dd-list\">\n$result</ol>\n" : null;
            }
    
    <?php 
    
    public function buildFooter($footer, $positionid = 'footer') 
        { 
          $result = null;
          foreach($footer as $item) 
            if($item->type == $positionid) {
              $result .= "
              <li class='dd-item nested-list-item' data-position='"
              . $item->position
              ."' data-id='".$item->id."'>
              <div class='dd-handle nested-list-handle'>
                <i class='fas fa-arrows-alt'></i>
              </div>
              <div class='nested-list-content'>";
    //if part
                if($item->widget == 'feature-posts'):
                    $result .= "Feature Posts";
                elseif($item->widget == 'feature-posts-sidebar'):
                    $result .= "Feature Posts (Sidebar)";
                elseif($item->widget == 'top-categories-posts'):
                    $result .= "Top Categories (By Posts)";
                elseif($item->widget == 'top-categories-visits'):
                    $result .= "Top Categories (By Visits)";
                else:
                    $result .= "Popular Posts";
                endif;
    // if part
            $result .= "- " . $item->status
                ."<div class='float-right'>
                  <a href=''>Edit</a> |
                  <a href='#' class='delete_toggle' rel='{$item->id}'>Delete</a>
                </div>
              </div>".$this->buildFooter($footer, $item->id) . "</li>"; 
            }
          return $result ?  "\n<ol class=\"dd-list\">\n".$result."</ol>\n" : null; 
        }
    
    // Getter for the HTML menu builder
    public function getHTMLFooter($items)
    {
        return $this->buildFooter($items);
    }