راکت

دانلود فایل در لاراول

22 پاسخ

سلام به همگی
من یه فروشگاه با لاراول درست کردم برای محصولات فیزیکی
الان میخام تو همین پروژه یه بخش اضافه کنم برای دانلود فایل که کاربر بعد از پرداخت بتونه فایل دانلود کنه
میخواستم بدونم دوتا سبد خرید باید درست کرد؟ ممنون میشم راهنمایی کنید

من کدهای زیر رو نوشتم برای اینکه اطلاعات فایل تو دیتابیس ذخیره بشه ولی یک ارور دارم

ارور

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'));
    }
paradox
paradox
@wxyz4367
ثبت پرسش جدید

پاسخ‌ها

22
رضا جهانگیر
رضا جهانگیر
@rezajahangir

تخصص: Full-Stack Developer

@wxyz4367
کدایی که بالا واستون فرستادم یه قسمتیشو ویرایش کردم و متد store هم کامل واستون نوشتم، مجدد کدا رو کپی کنید و تست کنید.

paradox
paradox
@wxyz4367

@mohammadeng3731
ممنونم

@rezajahangir
ممنون از پاسخگوییتون
باز این ارور هست

Call to a member function getClientOriginalName() on null

شاید پاسخ شما همین‌جا باشد

صفحه 2 از 2

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام