• 1 رای - 5 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
چگونه دوتا table را باهم join کنیم
#1
سلام دوستان
تو رو خدا به من کمک کنید چون واقعا تازه کارم
من دوتا جدول دارم به نام های
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
کد پی‌اچ‌پی:
$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
  پاسخ
تشکر شده توسط :
#2
سلام،
فکر کنم از Yii2 استفاده می‌کنی. به جای
کد پی‌اچ‌پی:
Yii::app()->db->createCommand() 
از
کد پی‌اچ‌پی:
Yii::$app()->db->createCommand() 
استفاده کن ببین درست میشه؟
غایب
  پاسخ
تشکر شده توسط :
#3
(۱۳۹۵ شهریور ۳۰, ۰۴:۱۲ ب.ظ)Alaa نوشته: سلام،
فکر کنم از Yii2 استفاده می‌کنی. به جای
کد پی‌اچ‌پی:
Yii::app()->db->createCommand() 
از
کد پی‌اچ‌پی:
Yii::$app()->db->createCommand() 
استفاده کن ببین درست میشه؟

نه اینطوری که کلا از همون اول خطا میده
Function name must be a string
  پاسخ
تشکر شده توسط :
#4
کدی که نوشتین رو بزارین.
غایب
  پاسخ
تشکر شده توسط :
#5
[
(۱۳۹۵ شهریور ۳۱, ۰۱:۲۰ ب.ظ)Alaa نوشته: کدی که نوشتین رو بزارین.
کد پی‌اچ‌پی:
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,
                ]*/
            
],
        ]); 
  پاسخ
تشکر شده توسط :
#6
(۱۳۹۵ شهریور ۳۱, ۰۱:۱۱ ب.ظ)fahime87 نوشته: نه اینطوری که کلا از همون اول خطا میده
Function name must be a string
جلوی app$ نباید پرانتزها رو بذاری (تابع نیست)
در ضمن چرا از createCommand استفاده کردی. می تونی از کد زیر هم استفاده کنی :
کد پی‌اچ‌پی:
$query=Meeting::find()->joinWith('sessions'
  پاسخ
تشکر شده توسط : Alaa fahime87


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان