راکت
حل شده

آپلود تک عکس در لاراول

5 پاسخ

سلام
من تجربه زیادی درلاراول ندارم اما طبق اموزش وبسایت اموزشی فروشگاهی لاراول دارم پیش میرم حالا میخوام در قسمت دسته بندی هام علاوه برعنوان دسته بندی ، یک تصویر هم برای دسته بندهام اپلود کنم.
مشکل: مقادیرم(عنوان و تصویر) در دیتابیس ذخیره نمیشه!
AdminController :

<?php

namespace AppHttpControllersAdmin;

use CarbonCarbon;
use IlluminateHttpRequest;
use AppHttpControllersController;

class AdminController extends Controller
{
    protected function uploadImages($file)
    {
        $file = request()->file('cover');
        $year = Carbon::now()->year;
        $destinationPath = public_path("/upload/images/{$year}/");
        $filename = $file->getClientOriginalName();
        $file->move($destinationPath , $filename);

        return $file;

    }

}

CategoryController :

<?php

namespace AppHttpControllersAdmin;

use AppCategory;
use AppHttpRequestsCategoryRequest;
use IlluminateHttpRequest;
use AppHttpControllersController;

class CategoryController extends AdminController
{
    /**
     * Display a listing of the resource.
     *
     * @return IlluminateHttpResponse
     */
    public function index()
    {
        $categories = Category::latest()->paginate(20);
        return view('admin.categories.all' , compact('categories'));
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return IlluminateHttpResponse
     */
    public function create()
    {
        return view('admin.categories.create');
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param CategoryRequest|Request $request
     * @return IlluminateHttpResponse
     */
    public function store(CategoryRequest $request)
    {

   $coverurl =  $this->uploadImages($request->file('cover'));
 Category::create(array_merge($request->all() , ['cover' => $coverurl]));

    return redirect(route('categories.index'));

    }

    /**
     * Update the specified resource in storage.
     *
     * @param  IlluminateHttpRequest  $request
     * @param  AppCategory  $category
     * @return IlluminateHttpResponse
     */
    public function update(Request $request, Category $category)
    {
        //
    }

}

لطفا اگر امکانش هست بهم بگید چطوری باید کد قسمت store و update رو بنویسم. ممنونم

ثبت پرسش جدید

پاسخ‌ها

5
رضا
رضا
@Megairan

تخصص: Laravel Developer

بهترین پاسخ

دوستان کدی که نوشتم برای اپلود تک عکس هست که مشکل خیلی ها در لاراول بود (از کامنت های دوره فهمیدم...)
راه حلش رو میزارم امیدوارم مشکلتون حل بشه :)
AdminController :

<?php

namespace AppHttpControllersAdmin;

use CarbonCarbon;
use IlluminateHttpRequest;
use AppHttpControllersController;

class AdminController extends Controller
{
    protected function uploadImages($file)
    {
        $year = Carbon::now()->year;
        $filename = date('Y_m_d') . '_' . $file->getClientOriginalName();
        $destination = "/uploads/images/{$year}";
        $destinationPath = public_path($destination);
        $file->move($destinationPath , $filename);
        return $destination . '/'. $filename;

    }

}

CategoryController :

<?php

namespace AppHttpControllersAdmin;

use AppCategory;
use AppHttpRequestsCategoryRequest;
use IlluminateHttpRequest;
use AppHttpControllersController;

class CategoryController extends AdminController
{
    /**
     * Display a listing of the resource.
     *
     * @return IlluminateHttpResponse
     */
    public function index()
    {
        $categories = Category::latest()->paginate(20);
        return view('admin.categories.all' , compact('categories'));
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return IlluminateHttpResponse
     */
    public function create()
    {
        return view('admin.categories.create');
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param CategoryRequest|Request $request
     * @return IlluminateHttpResponse
     */
    public function store(CategoryRequest $request)
    {
    $coverUrl =  $this->uploadImage($request->file('cover'));
     Category::create(array_merge($request->all() , ['cover' => $coverUrl]));

    return redirect(route('categories.index'));

    }

    /**
     * Update the specified resource in storage.
     *
     * @param  IlluminateHttpRequest  $request
     * @param  AppCategory  $category
     * @return IlluminateHttpResponse
     */
    public function update(Request $request, Category $category)
    {
       $coverUrl = $request->file('cover');
        $input = $request->all();
        if ($coverUrl){
            $input ['cover'] = $this->genreUploadImage($request->file('cover'));
        }else{
            $input ['cover'] = $genre->cover;
        }

        $category->update($input);
        return redirect(route('categories.index'));
    }

}
حسام موسوی
حسام موسوی
@hesammousavi

تخصص: طراح و برنامه نویس

من کدی برای ذخیره سازی اطلاعات در database نمیبینم !! کجا قرار دادید این کد رو !!!؟

رضا
رضا
@Megairan

تخصص: Laravel Developer

@hesammousavi
چون بلد نبودم بنویسمش!
الان توی استور و اپدیت CategoryController چجوری باید کدشو بنویسم؟ بعد اون کد uploadImages که توی AdminController نوشتم درسته؟

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

حسام موسوی
حسام موسوی
@hesammousavi

تخصص: طراح و برنامه نویس

خوب شما باید کار با لاراول رو یادبگیرید و خودتون بنویسید !!!
میتونید از یک دوره مقدماتی لاراول شروع کنید و اول مایگریشن و بعد مدل و بعد عملیات ذخیره سازی رو انجام بدید

رضا
رضا
@Megairan

تخصص: Laravel Developer

@hesammousavi
من مایگریشن ها ، مدل ها ، ویو ها رو نوشتم اوکیه !
من حتی دوباره کدی که توی استور نوشتم رو ویرایش کردم اما عکس بصورت tmp ذخیره میشه چرا؟اگر امکانش هست بگید چجوری باید کدشو بنویسم؟

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

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