在laravel中用雄辩的

bihw5rsg  于 2021-06-24  发布在  Mysql
关注(0)|答案(2)|浏览(339)

我从laravel开始,我有两个简单的实体,即用户和注解,它们的关系如下:
用户

public function notes()
{
  return $this->hasMany('App\Note');
}

笔记

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

现在在我的控制器注解中,我想返回我所有的注解,但是我不想接收用户的id,我想返回这个名称,我必须在两个实体的关系中指定一些东西,或者我应该在我的查询中调整一些东西,目前我正在使用这个:

$notes = Note::orderBy('id', 'desc')->get();
lxkprmvk

lxkprmvk1#

您可以按如下方式检索用户名:

$notes = Note:: orderBy ('id', 'desc') -> get ();
foreach ($notes as $note)
{
    $name = $note->user->name;
}
mbjcgjjk

mbjcgjjk2#

如果您想用'user\u name'传递整个$note数据,请首先定义您自己的类。像这样的。

class my_class{
    public $data;
    public $user_name;
}

您可以在获得$note变量之后运行一个循环,并将数据保存到一个新数组中,如下代码所示。

$notes = Note::orderBy('id', 'desc')->get();
//define an empty Array
$data_arry=array();

foreach($notes as $note)
{
    $custom=new my_class();
    $name=User::where('u_user_id', $note->n_user_id)->limit(1)->get(); 
    //First 'u_user_id' for column name in user table second 'n_user_id' for column name in note table 
    $user_name=$name[0]->u_user_name; // 'u_user_name' for column name of stored the name in user table

    //pushing data to the object
    $custom->data=$note;
    $custom->user_name=$user_name;

    $data_arry[]=$custom;
}

现在您可以使用新阵列管理数据了。

相关问题