I have two tables like this:
users: users_id | name | users_roles_id
users_roles: users_roles_id | roles
I want to join these tables. I have tried the following:
use Elegant\Model as Eloquent;
class User extends Eloquent {
protected $table = 'users';
function getRoles($userId){
User::join('users_roles', 'users_roles.users_roles_id', '=', 'users.users_roles_id')
->select('*')
->get();
}
public function user_role() {
return $this->belongsTo('users_roles','users_roles_id');
}
}
But I don't know how to join these to display it. Thanks
Try replace this
return $this->belongsTo('users_roles', 'users_roles_id');
With
return $this->belongsTo('users_roles', 'users_roles_id', 'users_id');
Read more Eloquent Laravel document for name convenient
i did
class User extends Eloquent {
protected $table = 'users';
function getRoles($userId){
return $this->where('id', $userId)->join('users_roles', 'users.users_roles_id = users_roles.users_roles_id')->get();
}
}
it's working ;-)
You create a
core/MY_Model.php
<?php
require_once FCPATH . 'filelocation/Eloquent.php';
class MY_Model extends Eloquent {
public function __construct() {
parent::__construct();
}
}
Then on the model
models > User_model.php
<?php
class User_model extends MY_Model {
public function __construct() {
parent::__construct();
}
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.