paradox
4 سال پیش توسط paradox مطرح شد
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'));
    }

ثبت پرسش جدید
رضا جهانگیر
تخصص : Full-Stack Developer
@rezajahangir 4 سال پیش مطرح شد
0

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


paradox
@wxyz4367 4 سال پیش مطرح شد
0

@mohammadeng3731
ممنونم

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

Call to a member function getClientOriginalName() on null

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

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