在 laravel 5.3 blade 中呈现动态锚标记

render dynamic anchor tag in laravel 5.3 blade

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

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

基本上我正在检查特定任务是否完成(通过 $task->complete 模型属性)。如果是,则显示字符串 "Yes",否则呈现 link,表示 "mark as complete"。 link 会将用户带到路线“/task/complete/{任务 ID}”,我将在其中进一步处理它。

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

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

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

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

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

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