هاست لاراول با پشتیبانی 24 ساعته و امکانات کامل از مدیرهاست
scream3196
-
تعداد ارسال ها
3 -
تاریخ عضویت
-
آخرین بازدید
پست ارسال شده توسط scream3196
-
-
سلام به بزرگواران
من سه تیبل 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);
-
سلام
وقتی میخوام اطلاعتی که در دیتابیس هست رو در ادرس 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 استفاده میکنم این پیغام میاد.
ممنون
مشکل با sync
در رفع مشکلات و سوالات عمومی لاراول Laravel
ارسال شده در · Report reply
برای هر کدوم هم یه pivot تیبل هم زدم.
category_products
category_subcategory
از این کد برای ذخیره آی دی های محصول و دسته استفاده میکنم
و از این کد هم برای ذخیره آی دی دسته و سابش :
محصول و دسته اوکیه ولی دسته و سابش فقط دسته بدرستی ذخیره میشه و ساب یه ای دی کمتر ذخیره میکنه
مثلا : دسته شماره سه و ساب شماره ۳ ولی موقع ذخیره ۳ و ۲ ذخیره میشن.
این کد هم توی مدل محصول :
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);
}
امیدوارم درست تونسته باشم توضیح بدم