انجمن ایران پی اچ پی

نسخه کامل: چگونه دوتا table را باهم join کنیم
شما در حال مشاهده نسخه متنی این صفحه می‌باشید. مشاهده نسخه کامل با قالب بندی مناسب.
سلام دوستان
تو رو خدا به من کمک کنید چون واقعا تازه کارم
من دوتا جدول دارم به نام های
meeting(id,course_name,school_id,teacher_id)
sessions(id ,name,date,duration,meeting_id)
میخوام این دوتا جدول رو باهم join کنم طوری که
meeting.id=session.meeting_id
و از طرفی record هایی که school_id آنها برابر با عدد خاصی هست رو در گراید ویو نمایش بدم. ولی متاسفانه موفق نمیشم query مورد نظر رو در searchModel درست کنم....
از دستور
Yii::app()->db->createCommand()
استفاده کردم متاسفانه error میده که
Call to undefined method Yii::app()
HuhHuh
کد PHP:
$query =Meeting::find ()->innerJoin 'Sessions''Meeting.id = Sessions.meeting_id' )->select 'Meeting.name AS name, Sessions.name AS sname' )
        ->
where(['school_id' => $school->id]);
[
php
سلام،
فکر کنم از Yii2 استفاده می‌کنی. به جای
کد PHP:
Yii::app()->db->createCommand() 
از
کد PHP:
Yii::$app()->db->createCommand() 
استفاده کن ببین درست میشه؟
(۱۳۹۵ شهريور ۳۰ ۰۳:۱۲ عصر)Alaa نوشته شده توسط: [ -> ]سلام،
فکر کنم از Yii2 استفاده می‌کنی. به جای
کد PHP:
Yii::app()->db->createCommand() 
از
کد PHP:
Yii::$app()->db->createCommand() 
استفاده کن ببین درست میشه؟

نه اینطوری که کلا از همون اول خطا میده
Function name must be a string
کدی که نوشتین رو بزارین.
[
(۱۳۹۵ شهريور ۳۱ ۱۲:۲۰ عصر)Alaa نوشته شده توسط: [ -> ]کدی که نوشتین رو بزارین.
کد PHP:
public function search($params)
    {
        
$school Yii::$app->school;
      

     
/*   $query =Meeting::find ()->innerJoin ( 'Sessions', 'Meeting.id = Sessions.meeting_id' )->select ( 'Meeting.name AS name, Sessions.name AS sname' )
        ->where(['school_id' => $school->id]);*/

       
$query Yii::app()->db->createCommand()
            ->
select('SELECT * FROM Meeting as M')
            ->
join('Sessions S''M.id=S.meeting_id');


        
$dataProvider = new ActiveDataProvider([
            
'query' => $query,
            
'sort' => [
                
// Set the default sort by name ASC and created_at DESC.
              /*  'defaultOrder' => [
                    'id' => SORT_DESC,
                ]*/
            
],
        ]); 
(۱۳۹۵ شهريور ۳۱ ۱۲:۱۱ عصر)fahime87 نوشته شده توسط: [ -> ]نه اینطوری که کلا از همون اول خطا میده
Function name must be a string
جلوی app$ نباید پرانتزها رو بذاری (تابع نیست)
در ضمن چرا از createCommand استفاده کردی. می تونی از کد زیر هم استفاده کنی :
کد PHP:
$query=Meeting::find()->joinWith('sessions'
لینک مرجع