رضا
6 سال پیش توسط رضا مطرح شد
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 رو بنویسم. ممنونم


ثبت پرسش جدید
رضا
تخصص : Laravel Developer
@Megairan 6 سال پیش آپدیت شد
1

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

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


رضا
تخصص : Laravel Developer
@Megairan 6 سال پیش مطرح شد
0

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


حسام موسوی
تخصص : طراح و برنامه نویس
@hesammousavi 6 سال پیش مطرح شد
0

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


رضا
تخصص : Laravel Developer
@Megairan 6 سال پیش مطرح شد
0

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


رضا
تخصص : Laravel Developer
@Megairan 6 سال پیش آپدیت شد
1

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

}

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

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