Php 当我为get()提供参数时,with()返回null
我有两个类,Php 当我为get()提供参数时,with()返回null,php,laravel,Php,Laravel,我有两个类,BedRequest和RequestThing: class BedRequest extends Model { use HasFactory; protected $table = 'bed_request'; protected $guarded = []; public function requests() { return $this->belongsTo(RequestThing::class, 're
BedRequest
和RequestThing
:
class BedRequest extends Model
{
use HasFactory;
protected $table = 'bed_request';
protected $guarded = [];
public function requests()
{
return $this->belongsTo(RequestThing::class, 'request_id');
}
}
class RequestThing extends Model
{
use HasFactory;
protected $table = 'requests';
protected $guarded = [];
public function bedRequests()
{
return $this->belongsTo(BedRequest::class);
}
}
[
{
"post_status": 0,
"created_at": "2021-05-03T08:29:37.000000Z",
"requests": {
"id": 128,
"name": "John Doe",
"age": "52",
"gender": "male",
"contact": "9101235456",
"address": "Kentucky",
"urgency": "urgent",
"reason": "Some reason",
"filler_name": "Mahim",
"filler_contact": "9160236160",
"filler_address": "Bali",
"filler_relation": "others",
"created_at": "2021-05-03T08:29:37.000000Z",
"updated_at": "2021-05-03T09:47:17.000000Z"
}
}
]
我试图获得以下输出格式,其中post\u status
和created\u at
是BedRequest
和requests
的字段,key保存与RequestThing
相关的数据:
class BedRequest extends Model
{
use HasFactory;
protected $table = 'bed_request';
protected $guarded = [];
public function requests()
{
return $this->belongsTo(RequestThing::class, 'request_id');
}
}
class RequestThing extends Model
{
use HasFactory;
protected $table = 'requests';
protected $guarded = [];
public function bedRequests()
{
return $this->belongsTo(BedRequest::class);
}
}
[
{
"post_status": 0,
"created_at": "2021-05-03T08:29:37.000000Z",
"requests": {
"id": 128,
"name": "John Doe",
"age": "52",
"gender": "male",
"contact": "9101235456",
"address": "Kentucky",
"urgency": "urgent",
"reason": "Some reason",
"filler_name": "Mahim",
"filler_contact": "9160236160",
"filler_address": "Bali",
"filler_relation": "others",
"created_at": "2021-05-03T08:29:37.000000Z",
"updated_at": "2021-05-03T09:47:17.000000Z"
}
}
]
因此,我在控制器中编写了以下代码:
public function bedRequest()
{
$bedRequests = BedRequest::where(['approved' => 1, 'post_status' => 0])->with('requests')->get(['post_status', 'created_at']);
return $bedRequests;
}
但当我这么做时,我得到的回应是:
[
{
"post_status": 0,
"created_at": "2021-05-03T08:29:37.000000Z",
"requests": null
}
]
requests
键给出null
值。但是,如果我执行以下操作(即从get()中删除参数)
,requests
键填充了数据,我也收到了BedRequest
的全部数据。但是,我只需要post\u status
和created\u at
fromBedRequest
和requests
中保存RequestThing
数据的命令
有人能提出解决方案吗?您有:
$bedRequests = BedRequest::where(['approved' => 1, 'post_status' => 0])->with('requests')->get(['post_status', 'created_at', 'bedRequest_id']);
对于请求,您将获得null,这可能是因为您
某些特定字段,很可能您没有选择
从创建关系的BedRequest表中foreing_键
如果您的bedRequests表包含外键
(可能是request_id)的requests表,然后您必须选择该表
bedRequests表中的外键。所以,只需添加它
get()参数中的外键/bedRequest\u id。不带
关系生成器密钥(FK)不会加载请求
你有这个:
$bedRequests = BedRequest::where(['approved' => 1, 'post_status' => 0])->with('requests')->get(['post_status', 'created_at', 'bedRequest_id']);
对于请求,您将获得null,这可能是因为您
某些特定字段,很可能您没有选择
从创建关系的BedRequest表中foreing_键
如果您的bedRequests表包含外键
(可能是request_id)的requests表,然后您必须选择该表
bedRequests表中的外键。所以,只需添加它
get()参数中的外键/bedRequest\u id。不带
关系生成器密钥(FK)不会加载请求
你也可以分享你想要的输出吗?是这样的:[{“post_status”:0,“created_at:“2021-05-03T08:29:37.000000 z”}]
我在问题中提到了想要的输出。请参考“我正在尝试获得以下输出格式…”的段落,你也可以分享你想要的输出吗[{“post_status”:0,“created_at:“2021-05-03T08:29:37.000000 z”}]
我在问题中提到了所需的输出。请参阅“我正在尝试获得以下输出格式…”的段落。。。“这解决了我的问题。虽然响应包含一个额外字段请求\u id
,但它对我有效。谢谢!这解决了我的问题。虽然响应包含一个额外字段请求\u id
,但它对我有效。谢谢!