با سلام
هنگام ذخیره مطلب با خطای 42s22 مواجه میشم
لاراول 10 کار میکنم و یک جدول pvot دارم که همزمان می خوام هم مطلب ذخیره بشه و هم اطلاعات در جدول pvot
ممنون میشم راهنمایی کنید

کد کنترلر
public function create()
{
$categories= category::all()->pluck("name","id");
$page_title="فرم ایجاد مطلب";
return view('back.articles.create', compact("page_title","categories"));
}
public function store(Request $request)
{
$messages= [
'name.required' => 'لطفاً نام مطلب را وارد نمایید' ,
'slug.required' =>'لطفاً نام مستعار مطلب را وارد نمایید' ,
'slug.unique' => 'نام مستعار مطلب تکراری است' ,
'description.required' => 'لطفاً محتوای مطلب را وارد نمایید' ,
'status.required' => 'لطفاً وضعیت مطلب را وارد نمایید' ,
];
$validated = $request->validate([
'name' => 'required',
'slug' => 'required|unique:categories' ,
'description' => 'required' ,
'status' => 'required'
] , $messages);
$article=new Article;
try{
$article=$article->create($request->all());
$article->categories()->attach($request->categories);
}catch(Exception $exception){
return redirect(route('admin.articles.create')) -> with('warning' , $exception->getCode());
}
$msg="مطلب جدید با موفقیت ذخیره گردید";
return redirect(route('admin.articles')) -> with('success' , $msg);
}
کد مادل های article , category
class category extends Model
{
use HasFactory;
protected $fillable=['name','slug'];
public function atricles()
{
return $this->belongsToMany(Article::class );
}
}
class Article extends Model
{
use HasFactory;
protected $fillable=['name','slug','description','user_id','status'];
protected $attributes=['hit=>1'];
public function categories()
{
return $this->belongsToMany(Category::class);
}
}
کد جدول
public function up(): void
{
Schema::create('articles', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('slug')->unique();
$table->text('description');
$table->integer('user_id');
$table->integer('hit');
$table->tinyInteger('status');
$table->timestamps();
});
}سلام دوست عزیز
من مشکلتون رو متوجه شدم ببینید برید توی phpmyadmin و دیتابیس رو چک کنید جدول articles ایدی رو چک کنید ببینید auto increment فعال هست یا نه یا اگه نمیدونید یک اسکرین شات بگیرید بفرستید ولی کنارش باید یه دونه کلید زرد رنگ باشه کنار ایدی اگه اون باشه که هیچی مشکل از کد نویسیه اما اگه نباشه یعنی ایدی جدول articles به صورت خودکار نمیاد بهش اضافه بشه و پر بشه واسه همین اینجا فیلد ایدی رو تعریف نکردی بهت اررور داد که نمیتونی ایدی رو 0 بزاری مگر اینه رفته باشه و کد های لاراول رو دست کاری کرده باشه و اون قسمتی که گفته
$table->id();
رفتی و کد هاشو تغییر دادی و auto increment رو ازش ورداشتی چون ایدی توی مایگریشن ها به صورت پیشفرض قرار داره و auto increment هم براش فعاله
سلام
اینارو چک کردم قبلاً
مشکل از کد هستش

شاید پاسخ شما همینجا باشد
به اینصورت dd میزارم بعد از همون دستور ولی بازم همون خطا رو میده
$article=new Article;
// try{
$article = $article->create($request->all());
dd($request);سلام
کسی نیست راهنمایی کنه؟
array:7 [▼ // app\Http\Controllers\back\ArticleController.php:42
"_token" => "P0HKu4hONE875iP2JTP3SjvYFgrR3YF9hCcvCm9k"
"name" => "مطلب1"
"slug" => "001"
"description" => "مطلب1مطلب1مطلب1مطلب1مطلب1مطلب1مطلب1مطلب1مطلب1مطلب1مطلب1مطلب1مطلب1مطلب1مطلب1مطلب1مطلب1مطلب1مطلب1مطلب1مطلب1مطلب1مطلب1مطلب1مطلب1مطلب1مطلب1مطلب1مطلب1مطلب1مطلب1مطلب1 ▶"
"status" => "1"
"categories" => array:1 [▼
0 => "4"
]
"user_id" => "1"
]به هر شکلی میزنم همون مشکل رو میگیره
میشه لطفاً خط دستورشو کامل بگین
شاید اشتباه میزنم
درود خوبی...
توی مدل article این کد وارد کنید.
به جای $attributes عبارت $appends جایگزین کنید:
protected $appends = [ 'status' , 'hit=>1'];سلام
ممنون
حل نشد
من خودم نمونه پروژه وبلاگ با لاراول نوشتم...
یه سر به کدهای مدل و کنترلر بزن:
https://github.com/OrchidDev/Blog