من یه دو تا جدل دارم یکی 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
مشگل کجاست
@sj10ss بی زحمت شما از migration یا جدول دیتابیستون یه عکس بفرستید تا بهتر راهنماییتون کنیم. اینطوری مشخص نیست . احتمالا باید به صورت دستی foreign key رو مشخص کنید
@mohsenbostan
این منو:
$table->string('name');
$table->string('url')->default('#');
$table->tinyInteger('status')->default(0);
$table->string('targets')->default('all');
$table->string('icon');
$table->integer('parent_id')->unsigned()->nullable();
$table->foreign('parent_id')->references('id')->on('menus')->onDelete('cascade');
$table->integer('user_id')->unsigned()->nullable();
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
$table->integer('page_id')->unsigned()->nullable();
$table->foreign('page_id')->references('id')->on('pages')->onDelete('cascade');
این page:
$table->increments('id');
$table->integer('user_id')->unsigned();
$table->foreign('user_id')->references('id')->on('users');
$table->integer('category_id')->unsigned();
$table->foreign('category_id')->references('id')->on('categories');
$table->string('title');
$table->string('slug')->nullable();
$table->text('summary')->nullable();
$table->longText('content')->nullable();
$table->string('keywords')->nullable();
$table->integer('visits')->unsigned()->default(0);
$table->tinyInteger('status')->default(0);
$table->string('targets')->default('all');
$table->dateTime('published_at')->nullable();
$table->timestamps();
$table->softDeletes();
گذاشتم خطای زیر رو میده
Undefined property: Illuminate\Database\Eloquent\Relations\BelongsTo::$title
{{App\Page::whereId($menu->page_id)->first()->title}}
اینو بذار به جای اون توی ویو ببین چیزی برمیگردونه
نگاه اینجوری نمیشه
به نظرم اگه میخوای واقعا مشکلاتت سریع حل شه بهترین راه اینه که خودت اول حسابی دیباگ کنی
راههای زیادی داره مثلا ابتدایی ترین اینه که ببینم واقعا چه نوع متغییری داری به ویو میفرستی
قبلش dump بگیر شاید داری یه آرایه صدا میزنی ....
@sj10ss
خوب اون قسمت کدتو آپلود کن جایی خیلی راحتتر میشه کمکت کرد
چون اینجور مشکلا کلیه...
و مثلا ما یه کاریو همین طور که تو کردی انجام میدیم و بدون مشکله
ولی کد خودتو که ببینیم میفهمیم بله فلان جا رو اشتباه کردی ...
شاید بقیه بهتر بتونن دیباگ کنن
داخل مدل menu متد رو به صورت زیر تعریف کردم:
public function page(){
return $this->belongsTo('AppPage');
}
داخل مدل page متد رو به صورت زیر تعریف کردم:
public function menu(){
return $this->hasOne('AppMenu');
}
اینم داخل view:
<td>{{$menu->page->title}}</td>
داخل کنترلر هم باید چیزی اضافه کنم؟
Trying to get property of non-object
شما دارید سعی میکنید یه پراپرتی رو از متغیری بگیرید که یه کلاس نیست در نتیجه ارور میده.
Eager-Loading رو امتحان کردید؟
اینو هم به belongsTo تغییر بدید.
public function menu(){
return $this->hasOne('App\Menu');
}
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟