آفلاین
user-avatar

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

2 سال پیش
توسط رضا آپدیت شد
آفلاین
user-avatar
رضا ( 4155 تجربه )
2 سال پیش
تخصص : Laravel Developer

سلام
من تجربه زیادی درلاراول ندارم اما طبق اموزش وبسایت اموزشی فروشگاهی لاراول دارم پیش میرم حالا میخوام در قسمت دسته بندی هام علاوه برعنوان دسته بندی ، یک تصویر هم برای دسته بندهام اپلود کنم.
مشکل: مقادیرم(عنوان و تصویر) در دیتابیس ذخیره نمیشه!
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 رو بنویسم. ممنونم

بهترین پاسخ انتخاب شده توسط رضا
آفلاین
user-avatar
رضا
2 سال پیش

دوستان کدی که نوشتم برای اپلود تک عکس هست که مشکل خیلی ها در لاراول بود (از کامنت های دوره فهمیدم...)
راه حلش رو میزارم امیدوارم مشکلتون حل بشه :)
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'));
    }

}
آفلاین
user-avatar
حسام موسوی ( 406046 تجربه )
2 سال پیش
تخصص : طراح و برنامه نویس

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

آفلاین
user-avatar
رضا ( 4155 تجربه )
2 سال پیش
تخصص : Laravel Developer

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

آفلاین
user-avatar
حسام موسوی ( 406046 تجربه )
2 سال پیش
تخصص : طراح و برنامه نویس

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

آفلاین
user-avatar
رضا ( 4155 تجربه )
2 سال پیش
تخصص : Laravel Developer

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

آفلاین
user-avatar
رضا ( 4155 تجربه )
2 سال پیش
تخصص : 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'));
    }

}
برای ارسال پاسخ باید وارد سایت شوید