2015-12-12 3 views
0

Работа Модельотношение один к одному в Laravel

class Job_Model extends Model 
{ 
    protected $table = "tbljobs"; 
    protected $primaryKey = "JobID"; 
    public $timestamps = false; 

    public function OrderType() 
    { 
     return $this->hasOne('\App\Models\OrderType_Model', "OrderTypeID"); 
    } 
} 

заказа Модель Тип

class OrderType_Model extends Model 
{ 
    protected $table = "tblOrderType"; 
    protected $primaryKey = "OrderTypeID"; 
    public $timestamps = false; 
} 

Запрос

$Jobs = \App\Models\Job_Model::with("OrderType")->get(); 

Я извлекаю все записи из таблицы tbljobs. но каждая запись не отображает соответствующую запись из таблицы типа заказа.

Я что-то упустил?

дд() результат

enter image description here

+0

Можете ли вы выполнить dd() результаты этого запроса и вставить его здесь? – djt

+0

Можете ли вы 'dd()' результат \ App \ Models \ Job_Model :: with ("OrderType") -> get() -> toSql() '? –

+0

Есть ли какие-либо записи в 'OrderType_Model'? –

ответ

1

Вам необходимо has() и with(). Возвращает только задания с типами заказов и фактически вводит тип заказа в каждое задание.

$Jobs = \App\Models\Job_Model::has("OrderType")->with("OrderType")->get(); 

Редактировать: если ваш внешний ключ находится на самом деле в таблице рабочих мест, а не в таблице типа заказа, вы хотите, чтобы отношение принадлежало отношению.

hasOne() предполагает, что внешний ключ находится в другой таблице.

belongsTo() предполагает, что внешний ключ находится в этой таблице.

0

Я полагаю, ваш вопрос просто, как вы могли видеть сбрасывали данные на экране? Попробуйте как этот

$Jobs = \App\Models\Job_Model::with("OrderType")->get(); 

foreach ($Jobs as $job) { 
    var_dump($job->toArray()); 
} 
Смежные вопросы