twig 没有从控制器中检索用户名?

twig not retrieving a username from a controller?

我只看到一个用户 ID 与我的待办事项相关联,它应该提取一个用户名,因为待办事项与用户相关联,可能是我的控制器没有提取正确的信息,或者可能是其他原因,这是顺便说一下,使用 slim 和 eloquent。

task.user_id.username 不起作用只是 task.user_id 显示与用户关联的号码。

todos 树枝

{% extends "templates/layout.html" %}

{% block content %}
<h1>My Todos</h1>

<ol>
  {% for task in tasks %}
        <div id="task{{task.id}}" class="myl" ng-controller="myCtrl">
        <li><h4>{{ task.task}}</h4></li>
        <small style="font-style:italic">{{task.created_at |date("m/d/Y")}}</small></br>
        <small style="font-style:italic">{{task.user_id.username}}</small></br>




    <button id="disappear" name="task" class="btn btn-sm btn-danger" ng-click="deleteTask({{task.id}})">Delete</button>



        </div>
    {% endfor %}

</ol>
{% endblock %}

待办事项控制器

public function getTodos($request, $response, $args)
{


    $tasks = Task::with('user')->get();

    return $this->c->view->render($response, 'todos.twig', ['tasks' => $tasks]);

}

看了这里的一些其他帖子后,我将代码更改为这个

我必须将我的模型 类 与 user_id 匹配,因为属于两个 类 而不仅仅是一个。

User.php

<?php

namespace App\Models;


use Illuminate\Database\Eloquent\Model;


class User extends Model 
{
    protected $table = 'users';
    protected $primaryKey = 'user_id';
    protected $fillable = ['username', 'password'];
    public $timestamps = [];


    public function tasks()
    {
        return $this->hasMany('App\Models\Task', 'user_id');
    }
}

Task.php

<?php

namespace App\Models;


// use Slim\Views\Twig as View;
// use Interop\Container\ContainerInterface;

use Illuminate\Database\Eloquent\Model;

class Task extends Model
{

    protected $table = 'tasks';
    protected $fillable = ['task', 'user_id'];


    public $timestamps = [];


    public function user()
    {
        return $this->belongsTo('App\Models\User', 'user_id');
    }

}

从这里我可以像这样引用用户名

{% extends "templates/layout.html" %}

{% block content %}
<h1>My Todos</h1>

<ol>
  {% for task in tasks %}
        <div id="task{{task.id}}" class="myl" ng-controller="myCtrl">
        <li><h4>{{ task.task}}</h4></li>
        <small style="font-style:italic">{{task.created_at |date("m/d/Y")}}</small></br>


        <small style="font-style:italic">
          {{ task.user.username}}

        </small>


        </br>




    <button id="disappear" name="task" class="btn btn-sm btn-danger" ng-click="deleteTask({{task.id}})">Delete</button>



        </div>
    {% endfor %}

</ol>
{% endblock %}