رفتن به مطلب
انجمن پشتیبانی لاراول ایران

هاست لاراول با پشتیبانی 24 ساعته و امکانات کامل از مدیرهاست

Special_One

مدیر
  • تعداد ارسال ها

    122
  • تاریخ عضویت

  • آخرین بازدید

  • Days Won

    23

پست ارسال شده توسط Special_One


  1. در در ۱۳۹۹/۲/۲۰ در 18:36، مهدی گفته است :

    مشکل اول درست شد اما در مورد دومی چطوری میشه یه کوئری خام تو دیتابیس زد؟

     

    منظورتون از کوئری خام یعنی چی یک مثال بزنید تا بهتر کمک کنیم.

     


  2. سلام دوست عزیز

    شما میتونید به مستندات لاراول هم مراجعه کنید

    https://laravel.com/docs/5.2/requests

    برای مثال برای دسترسی به Retrieving The Request URI میتونید به این صورت عمل کنید.

    $uri = $request->path();

    یا به صورت دیگری هم میشه این کار با استفاده از متد دیگری انجام داد

    \Request::getRequestUri()

    موفق تر باشید./

    • تشکر 1

  3. سلام رابطه های شما باید چند به چند باشه نه یک به چند چرا که هر محصول میتونه در دسته بندی های زیادی باشه و هر دسته میتونه دارای محصولات زیادی باشه

    برای مثال ما محصولات رو داریم و دسته ها را

    مدل Category

    public function Product()
    {
        return $this->belongsToMany(Product::class)
    }

    مدل Product

    public function category()
    {
        return $this->belongsToMany(Category::class);
    }

    همچنین شما برای نمایش نیاز به دو حلقه دارید تا محصولات مرتبط به دسته بندی خاص رو نشون بدید

    @foreach($category as $cat)
        @foreach($cat->product as $product)
            {{ $product->name }}
        @endforeach
    @endforeach

    شاد و سربلند باشید.


  4. سلام اگر میخواهید با این فایل منیجر کار کنید و به فایل ها احتیاج دارید میتونید از گیت های آقای طالبی پروژه رو کلون کنید

    https://github.com/Abolfazl-Talebi/laravel-tutorial

    یا میتونید از فایل منیجر معرفی شده در انجمن استفاده کنید .

    یا اگر مشکلی در نمایش تصاویر دارید باز هم میتونید از ویدیو هایی که مربوط به فایل منیجر هست رجوع کنید .
    https://www.aparat.com/v/SAed6

    موفق باشید


  5. سلام وقت بخیر

    این به معماری سایت مربوط میشه ،باید شما تمام فایل هایی که نیاز دارید رو باید زمانی فراخوانی کنید که به اون ها احتیاج دارید نه اینکه وقتی درخواستی به سمت سرور ارسال شد حجم گسترده ای از داده ها به سمت کلاینت ارسال بشه.

    برای مثال

    ما در فرم های ثبت نام یا ورود میتوانیم اعتبار سنجی را در سمت فرانت انجام دهیم تا از درخواست های زیاد به سمت سرور جلوگیری کنیم و این هم به سرعت سایت کمک میکنه هم تجربه کاربری بهتری داره .

    lazyloading هم گزینه مناسبی برای تصاویر هست

    میتونید سایت خودتون رو توسط سایت های آنلاین آنالیز کنید.


  6. سلام جواد عزیز

    در پاسخ به سوالتون باید بگم که پیشنهاد لاراول پوشه public هست و پوشه storage چرا که دسترسی ساده تری داره مثلا شما اگر داخل پوشه app فایل ها رو قرار بدید به هم ریختگی انجام میشه وقتی در پوشه پابلیک قرار بگیره دسترسی راحت تری دارین و تمام پکیج ها برای دسترسی یا قرار دادن فایل ها پوشه پابلیک رو انتخاب کردن پس منطقی ترین کار این هست که به پیشنهاد لاراول توجه کنیم .

     

    شما خیلی ساده میتونید پوشه های زیادی مربوط به فایل ها و تصاویر در پوشه Public بسازید

     

    موفق باشید

    • تشکر 1

  7. سلام دوست گرامی

    شما اگر طبق آموزش ها پیش رفته باشید باید در Model فیلد هایی که میخواهید ارسال کنید را اضافه کنید و توجه کنید در فرم باید اتربیوت name را به هر input بدهید.

    موفق باشید


  8. سلام علیرضا عزیز این مشکل در نسخه 6 حل شده بود و در نسخه هفت هم مشکلی نیست میتونید روش حل مشکل رو در این ویدیو ببینید

    https://www.aparat.com/v/SAed6

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

    موفق باشید

    • لایک 1

  9. سلام دوست گرامی در لاراول میکس تصاویر مطرح نیست و فقط ما میتوانیم فایل های css و js را فشرده سازی کنید اما برای تصاویر شما نیاز به پکیج هایی دارید که تصاویر را فشرده کنند .

    در ضمن در ویدیو آموزشی ما از قالب آماده استفاده کردیم اما در حالت واقعی ما قالب را از ابتدا پیاده سازی میکنیم و تصاویر را بنا بر نیاز باید توسط پکیج پیاده سازی کنیم.

    • تشکر 1

  10. در در ۱۳۹۹/۲/۱۷ در 16:06، javadbolouri گفته است :

    سلام دوست عزیزم..

    منم به یه همچین قضیه ای خیلی نیاز دارم که دوتا احراز هویت جدا یکی برای ادمین و یکی برای کاربرای سایت داشته باشم..

    میشه لطفا فرایندشو توضیح بدی که بدونم چجوری میشه از سیستم احراز هویت لارول بصورت چندگانه استفاده کرد؟

    ممنونم ❤️

    سلام دوست گرامی برای احراز هویت نیازی برای ایجاد جداگانه احراز هویت نیست چنانچه نیازی به این حالت باشد باید شما طبق حالت پیش فرض لاراول مدل MVC را پیاده سازی کنید و blade مورد نظر را بسازید و ادامه ماجرا...


  11. سلام دوست گرامی در حالت پیش فرض که در model روابط را ایجاد میکنیم id کلید خارجی است اما با متد های دیگری هم میشود حالت پیش فرض را تغییر داد و به این نکته توجه کنید که کلید خارجی باید از نوع bigInt باشد چون در لاراول نسخه جدید این حالت بوجود امده است .

    موفق باشید.


  12. سلام اقا فربد خیلی مخلصیم

    برای گزاشتن عکس باید یه تغییرات کوچولو بدی نسبت به کدهات من یه تصویر به دیتابیس با ویوجی اس و لاراول ارسال میکنم تا حساب کار دستت بیاد که چطور انجام میشه.

    قسمت ویو جی اس

    ما یک ورودی میخواهیم برای ارسال عکس
    <!-- image  -->
    <label for="p-image">تصویر محصول</label>
    <input
            type="file"
            name="image"
            id="p-image"
            class="form-control form-control-sm"
            v-on:change="onImageChange"
    />

    توجه داشته باش که فرم شما این اتربیوت را داشته باشه چون ولیدیت های لاراول که برای تصاویر قرار میدی برای شما کار نخواهد کرد من اینجا دومثال میزنم تا حالت های مختلف رو ببینی

     <form enctype="multipart/form-data" @submit.prevent="submit">
         <input
                  type="text"
                  name="name"
                  class="form-control form-control-sm"
                  v-model="name"
          />
             <!-- image  -->
          <label for="p-image">تصویر محصول</label>
          <input
                  type="file"
                  name="image"
                  id="p-image"
                  class="form-control form-control-sm"
                  v-on:change="onImageChange"
          />
    </form>

    حالا میریم سراغ نوشتن متد ها قسمت ویو

    <script>
    export default {
        data() {
            return {
                name: "",
                image: "",
            };
        },
        methods: {
            onImageChange(e) {
                this.image = e.target.files[0];
            },
            submit() {
                //formdata
                let formData = new FormData();
    
                formData.append("name", this.name);
                
                formData.append("image", this.image);
               
                axios
                    .post("/api/Product", formData, {})
                    .then(function(response) {
                        console.log(response);
                    })
                    .catch((error) {
                        console.log(error)
                         }
                    });
            }
        },
        mounted() {
            console.log("Component mounted.");
        }
    };
    </script>

    خب من با axios داده های api خودم رو به متد store فرستادم حالا بریم سراغ کدهای بک اند

     public function store(Request $request)
        {
            //validatedData
            $validatedData = $request->validate([
                'name' => 'required|max:255|string',
                'image' => 'required|image|mimes:jpeg,png,jpg'
            ]);
            $product = new Product();
            $product->name = $request->name;
            //image save
            $image = $request->image;
            $filename  =   $request->slug . $request->id . '.' . $image->getClientOriginalExtension();
            $image->move(public_path('images/products'), $filename);
            $product->image =   $filename;
            try {
                //save request
                $product->save();
            } catch (Exception $exception) {
                switch ($exception->getCode()) {
                    case  '':
                        return response()->json(['error' => $validatedData->messages()], 442);
                }
            }
        }

    حالا زمان آپلود فایل شما در پوشته images/products ذخیره میشه

    موفق باشید و امیدوارم کدها رو درک کرده باشید.

    • تشکر 1

  13. سلام امیر عزیز شما باید به این صورت عمل کنید. دو روش رو خدمتتون عرض میکنم باشد که مفید باشد./

    روش اول» اضافه کردن در Blade

    ابتدا فایل ها را در پوشه public قرار میدهیم و در فایل هسته یا مرکزی blade اینگونه عمل میکنیم

    نقل قول

    این مثال دقیقا با در نظر گرفتن پروژه است میتونید طبق مثال کدها را در پروژه خودتون جایگزین کنید.

     <!DOCTYPE html>
    <html lang="en">
    
    <head>
      <!-- Required meta tags -->
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
      <title>@yield('title')</title>
      <!-- plugins:css -->
      <link rel="stylesheet" href="{{ url ('/chosen/chosen.css') }}">
      
     </head>
     <body>
       
      <script src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.2/jquery.min.js'></script>
      <script src="{{ url ('/chosen/chosen.jquery.js') }}"></script>
    </body>
    
    </html>

    برای استفاده هم میتونید از مثال ها در صفحه گیت هاب پروژه استفاده کنید.

    روش دوم» اضافه کردن در وب پک

    mix.js([
    '/chosen/chosen.jquery.js',
    ]
    , 'public/js');
    
    mix.css([
    '/chosen/chosen.css',
    ]
    , 'public/css');

    موفق باشید


  14. سلام امیر

    به نظر من هر چقدر به روز تر باشید منطقی تر است نه اینکه در نسخه 8 لاراول مجبور بشید از نسخه 5.8 به 8 سوئیچ کنید و ممکن هست کار سختی باشه ،تغییرات اساسی لاراول 7 نسبت به 6 زیاد نبوده و میتونی خیلی زود خودت رو برسونی به ورژن 7 اما تو 8 نمیدونم چقدر تغییرات میخواد اعمال بشه .

    اما باز هم تصمیم با خودت هست . باز هم نظر آقای طالبی و صابر عزیز رو بپرسین

    @ابوالفضل طالبی  @saber

    • لایک 1

  15. در 23 ساعت قبل، websaz گفته است :

    ممنون از راهنمایی شما

    من بیشتر بخش backend  مورد نظرم هست که چکار باید بکنم

     

    فرقی نمیکنه شما داده ها رو پاس میدی بهش اون هم توسط filterاین کار را برای شما انجام میده


  16. از Api استفاده میکنی ؟ وقتی از Api استفاده میکنی نیازی نیست از base url استفاده کنی من خودم ویوجی اس کار میکنم یه نمونه واست نشون میدم برای ساخت دسته

         data() {
                return {
                    name: '',
                    shortdesc: '',
                };
            },
            methods: {
                create() {
                    axios.post("/api/cat/", {
                        name: this.name,
                        shortdesc: this.shortdesc,
                    })
                        .then(function () {
                            Swal.fire({
                                title: 'دسته با موفقیت ساخته شد',
                                icon: 'success',
                                confirmButtonText: 'باشه',
                                showCloseButton: true
                            })
                        }),
                        this.$router.push('/dashboard')
                            .catch(function (error) {
                                const Toast = Swal.mixin({
                                    toast: true,
                                    position: 'top-end',
                                    showConfirmButton: false,
                                    timer: 3000,
                                    timerProgressBar: true,
                                    onOpen: (toast) => {
                                        toast.addEventListener('mouseenter', Swal.stopTimer)
                                        toast.addEventListener('mouseleave', Swal.resumeTimer)
                                    }
                                })
    
                                Toast.fire({
                                    icon: 'warning',
                                    title: ' خطایی  رخ داد'
                                })
                            });
                    console.log(error)
                }
            },

    به Api توجه کن آدرسی ندادم اما تو url مشکلی ندارم این مربوطبه لاراول میشه نه ری اکت شما url رو تو env مشخص میکنی نه در react یا ویو این ها فقط ظاهر رو تشکیل میدن و لوکوموتیو سایت بک اند هست که همه این کار هایی که گفتی تو بک انجام میشه


  17. دوست عزیز بهترین راه برای اینکه از این پکیج های مسخره و سنگین استفاده کنید این هست که از Vuejs هست خیلی ساده با فیلترها و API میتونید سرچ را انجام بدهید.یک نمونه ساده براتون با ویوجی اس قرار میدم.

    جستجو با ویو جی اس به صورت SPA بدون رفرش صفحه

    • تشکر 1

  18. سلام مهدی عزیز

    شما باید ابتدا دیتابیس خود را پاک کنید و تمام جداول رو پاک کنید.  سپس وارد پوشه app\Providers\AppServiceProvider.php  میشوید و در تابع boot این کد را مینویسی

     public function boot()
        {
            //
            Schema::defaultStringLength(191);
        }

    و در ابتدا دستور

    use Illuminate\Support\Facades\Schema;

    را باید اضافه کنید و در انتها دستور

    php artisan migrate

    اجرا کنید و کار تمام

    موفق باشید

×
×
  • جدید...