Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/147.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel显示由创建,并使用各自的ID按名称编辑_Laravel - Fatal编程技术网

Laravel显示由创建,并使用各自的ID按名称编辑

Laravel显示由创建,并使用各自的ID按名称编辑,laravel,Laravel,我有一辆台式车。此表包含由编辑人创建的字段。每次创建或编辑车辆时,该特定用户的ID都会保存在此列中。 在显示此表详细信息的show视图中,我想显示用户名而不是ID。我在这里遗漏了什么或做错了什么 与用户关联的车型: 显示数据的控制器: 看法 使用hasmany,我可以按名称显示创建的或编辑的。如何显示创建人和编辑人的姓名?由于您只有用户的id,因此必须从数据库中获取用户的姓名。 在您的模型中,您可以添加访问器来实现这一点 class Vehicle extends Model { //

我有一辆台式车。此表包含由编辑人创建的字段。每次创建或编辑车辆时,该特定用户的ID都会保存在此列中。 在显示此表详细信息的show视图中,我想显示用户名而不是ID。我在这里遗漏了什么或做错了什么

与用户关联的车型:

显示数据的控制器:

看法

使用hasmany,我可以按名称显示创建的或编辑的。如何显示创建人和编辑人的姓名?

由于您只有用户的id,因此必须从数据库中获取用户的姓名。 在您的模型中,您可以添加访问器来实现这一点

class Vehicle extends Model
{
     // rest of the code

    public function getCreatedByNameAttribute()
    {
        return User::where('id', $this->created_by)->pluck('name')->first();
    }
}
您可以按如下方式访问“按用户名创建的”

<tr>
    <th>Created By</th>
    <td>{{$vehicle->created_by_name}}</td>
</tr>
然后,您可以按如下方式访问它

<tr>
    <th>Created By</th>
    <td>{{$vehicle->creator->name}}</td>
</tr>
由于您只有用户的id,因此必须从数据库中获取用户的名称。 在您的模型中,您可以添加访问器来实现这一点

class Vehicle extends Model
{
     // rest of the code

    public function getCreatedByNameAttribute()
    {
        return User::where('id', $this->created_by)->pluck('name')->first();
    }
}
您可以按如下方式访问“按用户名创建的”

<tr>
    <th>Created By</th>
    <td>{{$vehicle->created_by_name}}</td>
</tr>
然后,您可以按如下方式访问它

<tr>
    <th>Created By</th>
    <td>{{$vehicle->creator->name}}</td>
</tr>

车辆模型上的当前关系与编辑器匹配。为了为创建者实现同样的效果,您可以创建另一个与用户模型的关系,并将created_by列传递给它


在您的视图中,您可以使用$vehicle->creator->name或$vehicle->editor->name来显示名称

您在车辆模型上的当前关系与编辑器匹配。为了为创建者实现同样的效果,您可以创建另一个与用户模型的关系,并将created_by列传递给它


在您的视图中,您可以使用$vehicle->creator->name或$vehicle->editor->name来显示名称

谢谢您的选择。然而,我希望利用一对多/多对多的关系,而不是使用查询直接从数据库中获取它。可以在我的控制器中直接使用-$created\u by=User::find$customer->created\u by->name从数据库中获取名称;和$edited_by=User::find$customer->edited_by->name;谢谢你的选择。然而,我希望利用一对多/多对多的关系,而不是使用查询直接从数据库中获取它。可以在我的控制器中直接使用-$created\u by=User::find$customer->created\u by->name从数据库中获取名称;和$edited_by=User::find$customer->edited_by->name;
class Vehicle extends Model
{
    // rest of the code

    public function creator()
    {
        return $this->belongsTo(User::class, 'created_at', 'id');
    }
}
<tr>
    <th>Created By</th>
    <td>{{$vehicle->creator->name}}</td>
</tr>
class Vehicle extends Model
{
    public function customer(){
        return $this->belongsTo('App\Customer','customer_id');
    }

    public function creator(){
        return $this->belongsTo('App\User','created_by');
    }

    public function editor(){
        return $this->belongsTo('App\User','edited_by');
    }
}