هاست لاراول با پشتیبانی 24 ساعته و امکانات کامل از مدیرهاست
scream3196
کاربر-
تعداد ارسال ها
3 -
تاریخ عضویت
-
آخرین بازدید
تمامی ارسال های scream3196
-
مشکل با sync
موضوع پاسخی برای scream3196 در یک scream3196 ارسال کرد در رفع مشکلات و سوالات عمومی لاراول Laravel
یه محصول یه کتگوری و یه ساب دارم.هر سه در سه تیبل جداگانه. برای هر کدوم هم یه pivot تیبل هم زدم. category_products category_subcategory از این کد برای ذخیره آی دی های محصول و دسته استفاده میکنم $data->cats()->sync($request->category_id,false); و از این کد هم برای ذخیره آی دی دسته و سابش : $data1->subcat()->sync($request->subcat,false); محصول و دسته اوکیه ولی دسته و سابش فقط دسته بدرستی ذخیره میشه و ساب یه ای دی کمتر ذخیره میکنه مثلا : دسته شماره سه و ساب شماره ۳ ولی موقع ذخیره ۳ و ۲ ذخیره میشن. این کد هم توی مدل محصول : public function CATS(){ return $this->belongsToMany(Category::class, 'category_products', 'product_id', 'category_id'); } این کد هم برای مدل دسته : public function subcat() { return $this->belongsToMany(SubCategory::class, 'category_subcategory', 'category_id', 'subcategory_id'); } این کد هم برای مدل ساب : public function category(){ return $this->hasMany(Category::class); } public function products() { return $this->hasMany(Products::class); } امیدوارم درست تونسته باشم توضیح بدم -
سلام به بزرگواران من سه تیبل products categories subcategories دارم وقتی پروداکت و کتگوری رو سینک میکنم ذخیره میشه در تیبل category_products وقتی میخوام ساب کتگوری هم در ستون کناریش ذخیره بشه این پیغام میاد : SQLSTATE[HY000]: General error: 1364 Field 'subcategory_id' doesn't have a default value (SQL: insert into `category_products` (`category_id`, `product_id`) values (1, 1)) این ها هم بخش از کدها هستند : دیتابیس category_prodducts $table->unsignedBigInteger('product_id'); $table->unsignedBigInteger('category_id'); $table->unsignedBigInteger('subcategory_id'); $table->foreign('product_id') ->references('id') ->on('products') ->onDelete('cascade'); $table->foreign('category_id') ->references('id') ->on('categories') ->onDelete('cascade'); $table->foreign('subcategory_id') ->references('id') ->on('categories') ->onDelete('cascade'); $table->primary(['category_id','product_id','subcategory_id']); مدل product public function CATS(){ return $this->belongsToMany(Category::class, 'category_products', 'product_id', 'category_id'); } مدل category public function products(){ return $this->belongsToMany(Products::class)->withTimestamps(); } public function SUBCAT(){ return $this->belongsToMany(Category::class, 'category_category', 'product_id', 'subcategory_id'); } این هم در کنترلر پروداکت $data->cats()->sync($request->cats,false); $data->subcat()->sync($request->subcategory,false);
-
Trying to get property 'title' of non-object
یک عنوان یک مطلب ارسال کرد در رفع مشکلات و سوالات عمومی لاراول Laravel
سلام وقتی میخوام اطلاعتی که در دیتابیس هست رو در ادرس read ببینم پیغام Trying to get property 'title' of non-object میاد. هرکاری هم کردم متاسفانه نشد اینم نمونه کدها: در فایل مدل Post.php: protected $fillable=[ 'title','content','password' ]; در فایل مدل User.php: public function posts(){ return $this->hasOne('App\Models\Posts','title','content'); اینم در فایلwe.php: Route::get('/read',function (){ $user=User::findOrFail(2); foreach($user->Posts as $post){ echo $post->title ."</br>"; } }); حتی از حالت ریلیشن هم خارجش کردم که مستقیم به محتویات پست دسترسی داشته باشم بازم نشد. و اینکه وقتی از foreach استفاده میکنم این پیغام میاد. ممنون