ورود

View Full Version : استفاده از مدل و دستور جوین



ParisaKiani
چهارشنبه 30 اردیبهشت 1394, 13:23 عصر
سلام

من یه سلکت جوین دارم , از دوتا جدول user و resuran اطلاعات سلکت میکنه

موقع استفاده از مدل دچار مشکل شدم , لطفا راهنمایی کنید



$query = User::find();
$query->select(['user.userName','resturan.userId','resturan.id', 'resturan.name'])
->from('user')
->leftJoin('resturan', 'resturan.userId = user.id');


چون از مدل user استفاده کردم و userId تو تیبل user ندارم , userid رو برنمیگزدونه و وقتی از مدل resturan استفاده میکنم و username تو جدول resturan نیست ,username نمیشناسه


تو اینجور مواقع باید چیکار کرد ؟؟؟

ممنون از پاسخگویی

MMSHFE
چهارشنبه 30 اردیبهشت 1394, 13:29 عصر
ساختار دیتابیستون رو بگذارین. هر دو جدول user و resturan و همچنین relation های بینشون رو اینجا قرار بدین تا ببینیم مشکل چیه.

ParisaKiani
چهارشنبه 30 اردیبهشت 1394, 14:07 عصر
ساختار دیتابیستون رو بگذارین. هر دو جدول user و resturan و همچنین relation های بینشون رو اینجا قرار بدین تا ببینیم مشکل چیه.




CREATE TABLE IF NOT EXISTS `resturan` (`id` int(11) NOT NULL, `userId` int(11) NOT NULL, `name` varchar(50) NOT NULL, `email` varchar(190) NOT NULL, ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;



CREATE TABLE IF NOT EXISTS `user` ( `id` int(11) NOT NULL, `name` varchar(20) NOT NULL, `userName` varchar(100) NOT NULL, `password` varchar(200) NOT NULL, ) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8;



// start User.phpnamespace frontend\models;
use Yii;

class User extends \yii\db\ActiveRecord{ public static function tableName() { return '{{%user}}'; }
public function rules() { return [ [['name', 'userName', 'password'], 'required'] ]; }
public function attributeLabels() { return [ 'id' => 'ID', 'name' => 'Name', 'userName' => 'User Name', 'password' => 'Password', ]; }
public function getResturans() { return $this->hasMany(resturan::className(), ['userId' => 'id']); }}
//end User.php
//start resturan.php


namespace frontend\models;
use Yii;
class Clinic extends \yii\db\ActiveRecord{ public static function tableName() { return '{{%resturan}}'; }
public function rules() { return [ [['userId', 'name', 'email'], 'required'], ]; }
public function attributeLabels() { return [ 'id' => 'ID', 'userId' => 'User ID', 'name' => 'Name', 'email' => 'Email', ]; }
public function getUser() { return $this->hasOne(User::className(), ['id' => 'userId']); }}