基于其他列表laravel 5显示来自数据库的数据

时间:2016-09-20 07:02:06

标签: php mysql laravel laravel-5

我想显示来自特定列用户表的数据,比如说 uiprv 列。 和 uiprv provinsi 表中的 id 相同。

这是用户表图像:

enter image description here

这是provinsi table:

enter image description here

现在,我已成功显示数据库中的数据,但只显示“31”。 31是来自users表的uiprv列,与provinsi表中的id相同。 问题是,如何显示数据不仅 31 ,而且可以 DKI JAKARTA 。比如在 provinsi 表中的 nama_provinsi

我应该如何在控制器中编写代码。 在此先感谢。

4 个答案:

答案 0 :(得分:1)

在App / User.php中添加此内容

/**
 * Returns the province of the user
 *
 * @return 
 */
public function province()
{
    // Province is your model related to Provinsi table
    return $this->belongsTo('App\Province');
}

根据你所写的内容,

用户与省之间的关系是多对一的。

参考 - https://laravel.com/docs/5.3/eloquent-relationships

答案 1 :(得分:0)

在您的用户模型中添加此

    public function province()
    {
        return $this->hasOne('App\Model', 'foreign_key', 'local_key');
    }

在您的控制器中执行此操作

$data = User::with('province')->get();

答案 2 :(得分:0)

您可以编写连接查询以从表中获取特定列。

e.g。

$data = DB::table('users')
->join('provinsi','provinsi.id','=','users.uiprv')
->select('users.name_of_column','provinsi.name_of_column')
->get();

答案 3 :(得分:0)

在您的用户模型中添加

     /**
     * Returns the province for the user
     *
     * @return user all details
     */
     public function province()
     {
         return $this->belongsTo('App\Province', 'uiprv', 'id');
     }        

     /**
     * Returns the province for the user
     *
     * @return user select details
     */
     public function province()
     {
         return $this->belongsTo('App\Province', 'uiprv', 'id')->select('id', 'nama_provinsi');
     }        

您也可以在选择中添加其他一些字段。

尝试这些并回复此答案。