The reason your relation is not working is not because of the relations specified in the model, but because of the method naming in the User model and not specifying the foreign key.
Instead of:
public function medicine_type()
{
return $this->belongsTo('MedicineType');
}
Use:
public function medicineType()
{
return $this->belongsTo('MedicineType', 'id');
}
I hope this works for you ;)
Everything together:
<?php // app/models/MedicineType.php
class MedicineType extends Eloquent {
// Determines which database table to use
protected $table = 'medicine_types';
public function users()
{
return $this->hasMany('User');
}
}
and:
<?php // app/models/User.php
class User extends Eloquent {
// Determines which database table to use
protected $table = 'users';
public function medicineType()
{
return $this->belongsTo('MedicineType', 'id');
}
}
Testing if it works:
$user = User::find(1);
return $user->medicineType->name;
This successfully returns the related medicine_type's name.
I hope this helps you further ;)
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…