سلام به همگی
من یه فروشگاه با لاراول درست کردم برای محصولات فیزیکی
الان میخام تو همین پروژه یه بخش اضافه کنم برای دانلود فایل که کاربر بعد از پرداخت بتونه فایل دانلود کنه
میخواستم بدونم دوتا سبد خرید باید درست کرد؟ ممنون میشم راهنمایی کنید
من کدهای زیر رو نوشتم برای اینکه اطلاعات فایل تو دیتابیس ذخیره بشه ولی یک ارور دارم
ارور
Call to undefined method App\User::file()
دیتابیس
Schema::create('files', function (Blueprint $table) {
$table->id();
$table->unsignedBigInteger('user_id');
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
$table->string('title');
$table->text('description');
$table->integer('price');
$table->string('image');
$table->string('file');
$table->string('slug')->unique();
$table->integer('hit');
$table->tinyInteger('status');
$table->integer('inventory')->default(0);
$table->timestamps();
});
Schema::create('category_file' , function(Blueprint $table) {
$table->unsignedBigInteger('category_id');
$table->foreign('category_id')->references('id')->on('categories')->onDelete('cascade');
$table->unsignedBigInteger('file_id');
$table->foreign('file_id')->references('id')->on('files')->onDelete('cascade');
$table->primary(['category_id' , 'file_id']);
});
مدل یوزر
public function files()
{
return $this->hasMany(File::class);
}
مدل فایل
public function users()
{
return $this->belongsToMany(User::class);
}
کنترلر
public function store(Request $request , File $files)
{
$validData = $request->validate([
'title' => 'required',
'description' => 'required',
'image' => 'required',
'file' => 'required',
'categories' => 'required',
'slug' => 'unique:files',
'status' => ''
]);
if (empty($request->slug)) {
$slug = SlugService::createSlug(File::class, 'slug', $request->title);
} else {
$slug = SlugService::createSlug(File::class, 'slug', $request->slug);
}
$request->merge(['slug' => $slug]);
$files = auth()->user()->file()->create($request->all());
$files->categories()->sync($validData['categories']);
alert()->success('مطلب مورد نظر با موفقیت ثبت شد' , 'با تشکر');
return redirect(route('admin.files.index'));
}
@wxyz4367
کدایی که بالا واستون فرستادم یه قسمتیشو ویرایش کردم و متد store هم کامل واستون نوشتم، مجدد کدا رو کپی کنید و تست کنید.
@mohammadeng3731
ممنونم
@rezajahangir
ممنون از پاسخگوییتون
باز این ارور هست
Call to a member function getClientOriginalName() on null
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟