من یه دو تا جدل دارم یکی page و یکی دیکه هم menu
داخل مدل menu متد رو به صورت زیر تعریف کردم:
public function page(){
return $this->belongsTo('App\Page');
}
داخل مدل page متد رو به صورت زیر تعریف کردم:
public function menu(){
return $this->hasOne('App\Menu');
}
اینم داخل view:
<td>{{$menu->page->title}}</td>
اینم خطای که میده:
Trying to get property of non-object
مشگل کجاست
'AppMenu' یا بنویس 'App\Menu' یا App/Menu::class
'AppPage' یا بنویس 'App\Page' یا App/Menu::class
خوب یه کاری کن چک کن اولا ببین واسه منویی که درخواست میکنی واسش پیج وجود داره یا نه
اصلا دستی تو mysql چک کن ...
در ضمن یه توصیه دارم بهت هیچ وقت خودتو درگیر روابط نکن توی کارای بزرگ همیشه من به این رسیدم که هیچی کوئری نمیشه و خیلی وقتا روابط جوابگوی کارم نبوده و پیچیده ترش میکرده
@code2code
مشکل حل شد مهندس
ممنون
منظورت از این چیه که گفتید که روابط جوابگوی کارها نبود و پیچیده ترش می کیرد
@sj10ss
من بارها شده که روابط پیچیده تر از یه رابطه یک به چند و ... بوده که عملا روابط eloquent میخواستم استفاده کنم خیلی کد ناخواناتر و بعضی اوقات واقعا نشدنی بود واسه همین من کوئری رو ترجیح میدم
توی مثال زیر ما نیاز داریم سه تا جدول رو جوین کنیم
توی mysql اینا جوین میشه و سه تا جدول با یه کوئری از سمت mysql ارسال میشه
ولی با eloquent باید with زد و از callback function استفاده کرد که به جای یک کوئری دو کوئری ارسال میشه که مسلما کندتره...
ولی ایجوری خیلی قشنگ تر انجام شد
من شرمنده ام که دیگه وقتم اجازه نمیده بیشتر وقت بذارم
$primary_query = DB::connection('telegram')
->table('groups AS g')
->leftJoin('group_members AS g_m', 'g.group_id', '=', 'g_m.group_id')
->leftJoin('users AS u', 'u.id', '=', 'g_m.user_id')
->where('g.group_id', '=', $group_id);
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟