首先,在我的mysql数据库中,我有两个名为“users”和“users\u details”的表,它们是相互关联的
用户表
id(PK,AI,INT),用户名(VARCHAR,UNQ),密码(VARCHAR),全名(VARCHAR)
和用户表
id(PK,AI,INT),email(VARCHAR),phone(VARCHAR),address(VARCHAR),has_record(VARCHAR),user_id(INT,FK=参考表'users.id')
还有我的模型装订。
用户模型
<?php namespace App;
use Illuminate\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Auth\Passwords\CanResetPassword;
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract;
class User extends Model implements AuthenticatableContract, CanResetPasswordContract {
use Authenticatable, CanResetPassword;
/**
* The database table used by the model.
*
* @var string
*/
protected $table = 'users';
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = ['username', 'email', 'password'];
/**
* The attributes excluded from the model's JSON form.
*
* @var array
*/
protected $hidden = ['password', 'remember_token'];
public function user_details(){
return $this->hasOne('App\users_details');
}
}
和users_details模式
<?php namespace App;
use Illuminate\Database\Eloquent\Model;
class users_details extends Model {
protected $table = "user_details";
public function ud()
{
return $this->belongsTo('App\User');
}
}
我知道我可以像你一样
$data = User::find(1)->with('user_details'); //or
$data = User::find(1)->user_details;
但是我想从“用户”表中获取全名记录,这是“users_table”“user_id”外键的主要参考表,怎么样?怎么做呢?我试过了
$data = users_details::where('has_record', '=', 'no')->with('ud')->get(); //get all the records where column 'has_record' of 'users_details' is equal to 'no'
$data = $data->ud->fullname; //get the fullname
但不幸的是,不幸的是,没有工作,请提供任何帮助、想法、线索、建议、建议?
更新:
我使用查询生成器实现了它
$test = DB::table('users')
->join('user_details', 'users.id', '=', 'user_details.user_id')
->where('has_record', '=', 'no')
->get();
但是,有没有一种方法可以让我用雄辩的力量做到这一点呢?
你可以这样做。
根据你的代码
找到一个用户渴望加载的用户详细信息并获得名称。
$user_detail = user_details::with('ud')->find(1);
$user_detail->ud->name;
获取用户渴望加载的所有用户详细信息并获取用户名。
$user_details = user_details::with('ud')->get();
foreach($user_details as $user_detail){
echo $user_detail->user->name;
}
如果你愿意,我有个建议给你。尽量遵循单数/复数格式,这样可以使代码更具可读性。
// User Classs.
public function user_detail(){
return $this->hasOne('App\UserDetail');
}
// UserDetail Class.
public function user(){
return $this->belongsTo('App\User');
}
问题内容: 假设有两个表: 表A 表B 表之间的联系是 messageID 字段。 我想要一个查询来生成这样的结果,在该查询中,我将所有字段从表A中拉出,并对表B中每条消息的注释数进行计数,如下所示: 我已经尝试过这样的事情: 但这是行不通的。有任何想法吗?似乎应该可以在一个查询中执行此操作。我正在使用MSSQL。谢谢你的帮助。 问题答案: 标量子查询将起作用: 与往常一样,有很多方法可以改变这只
问题内容: 所以我有两个表,一个是RAWtable,另一个是MAINtable,如果存在多个记录(比较相同的名称,代码),我必须获取最新的groupID。例如,我在RAWtable上有这个: 这两个记录应视为一个,并且应仅返回此值: 该行是应插入主表中的唯一行。提供返回的最新GroupID(groupid是日期和时间的组合) 我已经尝试过了,但是没有用: 我怎样才能做到这一点?多谢。 问题答案:
问题内容: 我有一个表 的学生 这样 我想获取所有记录,但不应重复邮政编码。因此,在上述表记录的情况下,应获取记录1和2。将不会提取第3条记录,因为它的邮政编码已在第1条记录中。 问题答案: 以下查询将仅选择不同的“ zip”字段。 以下查询将选择所有字段以及不同的zip字段。
我遵循了Spring Boot参考指南,得到了这个错误 这是密码
问题内容: 我需要递归地对子矩阵进行并行处理(将原始矩阵分为4个并传递给一个方法)。矩阵存储为2D数组。我不能每次都将元素复制到一个新的矩阵,因为事实证明这是非常昂贵的。是否有某种方式可以引用Java中的子矩阵? 也许,这个问题不清楚,我在[这里]http://codingdict.com/questions/131438)没有得到答案。 问题答案: 我将为数据编写一个包装器,并将其称为Matri
我刚开始使用firebase作为我的Flatter应用程序的后端,我有一个问题:如何将两个文档链接在一起,同时获取这两个数据。例如,我有一个用户集合和一个帖子集合。我如何链接这两个文档,当我获取帖子数据时,我也会在相同的响应中获取用户数据