我有两张桌子
在上表中,我想搜索 countries.user_name (主键),并希望其 isdcodes.code中的isd代码 其中 isdcodes.country_username 是外键。
国家/地区型号:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Country extends Model
{
protected $primaryKey = 'my_id';
public function isdcode(){
return $this->hasOne('App\Isdcode', 'country_username', 'user_name');
}
}
路线档案
Route::get('user/{country}', function ($country){
return \App\Country::find($country)->isdcode;
});
听到我正在尝试搜索印度(国家/地区表中的user_name) http://localhost:8000/user/india 尝试获取非对象的属性 上面的结果是因为它试图在my_id中搜索印度,但我想在user_name中搜索它。
http://localhost:8000/user/1 { “isd_id”:1, “country_username”: “印”, “代码”:91, “created_at”:空 “的updated_at”:空}
提前真的感谢你。
答案 0 :(得分:3)
find()
方法使用主键,因此您需要将其更改为:
return \App\Country::where('user_name', $country)->first()->isdcode;
或者,如果您想将此列用作PK:
,请执行此操作protected $primaryKey = 'user_name';