public function getreason(Request $request){
$reasons = TradeReason::where('trade_id',$request->trade_id)->pluck("reason_id");
$reasondisplay = Reason::where "$reasons", '=', 'id')->pluck("reason");
return response() -> json($reasondisplay);
}
其代码仅显示原因ID但未在用户个人资料中显示原因
答案 0 :(得分:1)
您正在查询ID为$reasondisplay
的数组。您必须使用whereIn()
函数来查询数组中的id并获取原因。
public function getreason(Request $request){
$reasons = TradeReason::where('trade_id',$request->trade_id)->pluck('reason_id');
$reasondisplay = Reason::whereIn('id', $reasons)->pluck('reason');
return response() -> json($reasondisplay);
}
您可以参考laravel Documentation
答案 1 :(得分:0)
您的功能未正确编码,因此只需使用此代码替换您的函数,并使用whereIn()
方法代替where
。
public function getreason(Request $request){
$reasons = TradeReason::where('trade_id',$request->trade_id)->pluck("reason_id");
$reasondisplay = Reason::whereIn('id',$reasons)->pluck("reason");
return response()->json($reasondisplay);
}
答案 2 :(得分:0)
列必须是函数
中的first
参数
public function getreason(Request $request){
$reasons = TradeReason::where('trade_id',$request->trade_id)->first();
$reason = "";
if($reasons){
$reasondisplay = Reason::find($reasons->reason_id)->first();
if($reasondisplay){
$reason = $reasondisplay->reason;
}
}
return response()->json(["reason"=>$reason]);
}
最好你可以use relation
在TradeReason
public function reason()
{
return $this->hasOne('App\TradeReason','id','reason_id');
// ^ ^
// | |____ 'local_key'
// |__'foreign_key'
}
在控制器
中public function getreason(Request $request){
$reason = "";
$tr = TradeReason::where('trade_id',$request->trade_id)->with("reason")->first();
return response()->json(["reason"=>$tr->reason->reason]);
// ^ ^
// | |___Column Name
// |__Relation Name
}