【问题标题】:render dynamic anchor tag in laravel 5.3 blade在 laravel 5.3 刀片中渲染动态锚标记
【发布时间】:2017-12-22 07:13:01
【问题描述】:

最近几天我正在学习 laravel。似乎无法弄清楚如何在三元运算符中呈现动态锚标记。下面是我的代码sn-p:

@foreach($task_list as $task)
  <td>{!!  $task->completed? 'Yes' : '<a href="/task/complete/$task->id" >Mark as complete</a>' !!}</td>
@endforeach

基本上,我正在检查特定任务是否完成(通过 $task->complete 模型属性)。如果是,则显示字符串“是”,否则呈现“标记为完成”的链接。此链接会将用户带到“/task/complete/{id of the task}”路线,我将在其中进一步处理它。

我无法将任务的 id 获取为链接 url 的一部分(通过 $task->id 属性)。非常感谢一些帮助和知识分享

【问题讨论】:

    标签: php laravel laravel-5.3 blade dynamic-html


    【解决方案1】:
    @foreach($task_list as $task)
       <td>{!!  $task->completed? 'Yes' : '<a href="/task/complete/'.$task->id.'" >Mark as complete</a>' !!}</td>
    @endforeach
    

    【讨论】:

    • 虽然您的答案实际上可能是正确的,但您可能还想添加一些解释,为什么这个答案会对 OP 有所帮助。
    • @eray:谢谢。只是想知道我一开始是怎么错过的!
    【解决方案2】:

    你可以这样尝试,但你需要使用外部包,Try this

    @foreach($task_list as $task)
      <td>{!!  $task->completed? 'Yes' : link_to('url', $title = null, $attributes = [], $secure = null);
     !!}</td>
    @endforeach
    

    【讨论】:

      【解决方案3】:

      在 Blade 模板中使用 PHP 打印 HTML 不是一个好主意。我建议您使用简单易读的@if 解决方案而不是三元运算符:

      <td>
          @if ($task->completed)
              Yes
          @else
              <a href="{{ url('task/complete/'.$task->id) }}">Mark as complete</a>
          @endif
      </td>
      

      【讨论】:

      • 是的,这更具可读性,我想我更喜欢这个而不是三元运算符。但我仍然只是想学习如何去做。三元运算符的解决方案非常简单,我以某种方式错过了基本人员!不过感谢您的建议。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-04-04
      • 2018-10-03
      • 2023-04-08
      • 1970-01-01
      • 1970-01-01
      • 2015-03-05
      • 2017-05-23
      相关资源
      最近更新 更多