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

@amin

پارس کلیکی از ١ سال پیش

تجربه

30400

  • ۴ روز پیش @amin به بحث چگونگی ایجاد لایو فیلترینگ جواب داد.

    @MAHDI_MAHDI

    کلیات کارت درسته نگاه کن الان اون سویچ که اینجا زدی به نظرم بی معنی هست شما میتونی از دیتابیس مستقیم جواب بگیری لازم به این همه بررسی نیست,

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

    یه مثال ساده : تو یه فروشگاه اینترنتی مثلاٌ میخوایی واسه قسمت لباس همچین شیوه ای رو پیاده سازی کنی مثلاٌ فیلد رنگ داری میخوایی با توجه به رنگ لباس فیلتر رو اعمال کنی . برای این کار میایی اول از طریق ui از کار بر میگیری مثلا انتخاب کرد قرمز یه کوئری میفرستی به دیتابیس که آیا تو جدول محصولات و دسته بندی لباس و تو ستون رنگ آیا قرمز هست یا نه , اگر هست نتیجه رو با هرکدوم از فیلد های دلخواهی که میخوایی نشون بدی بده مثلاٌ عکس, سایز,جنس , اما اگر نیست یه پیغام نشون بده .

    به همین راحتی واسه هر قسمت از فیلتری که میخوایید میتونید این رو اعمال کنید و احتیاجی به یک شمارنده ندارید که آیا صفر هست یا 1

    درضمن این شیوه ای که گفتم از اصول mvc هم پشتیبانی میکنه و برای آینده کارتون و توسعه نرم افزار خیلی به درد میخوره, در آخر هم اگر موضوع براتون گنگ بود بگید کد های همون فروشگاه قسمت لباس رو که تو پروژه های خودم استفاده کردم براتون همینجا با جزییات بذارم تا بتونید استفاده کنید.

  • ۴ هفته پیش @amin به بحث آپدیت آنلاین پروژه های لاراول جواب داد.

    @amir

    این بسیار راه خوبی برای آپدیت هست به نظر خودم تاحالا نرسیده بود.

    یک branch دیگه بساز مثلا به اسم staging. بعد با dns تنظیم کن که هر وقت push کردی به github بره به این domain.

    الان یه مشکل بسیار مهم دیگه ,اینه که از اون جایی که کد های ما پولی هست , و برای هر آپدیت یا کلاٌ سورس اصلی باید پول پرداخت کنی تا دریافت کنی آیا تکنیکی هست که بزنی رو پروژه که که هم از کد هات در برابر کپی جلوگیری کنی و هم اگر سورس رو هم کپی کرد نتونه استفاده کنه و باید ( یه چیزی مثل لایسنس بزنه روش ) ممنون میشم در این مورد هم کمکم کنید.

    @shahryarjb @m0h314-hasani @tilkacoder

  • ١ ماه پیش @amin یک بحث به اسم آپدیت آنلاین پروژه های لاراول درست کرد.

    در مورد ورژن بندی اپلیکیشن(لاراول) چند تا موضوع پیش میاد اول این که شماره گذاری خاصی داره یا نه .

    موضوع بعدی رو با یک مثال توضیح بدم :

    اپلیکیشن رو نوشتیم و ورژن مثلاٌ 1.1 رو به مشتریامون دادیم و چند ماهی ازش استفاده کردند و حالا ما یک ورژن جدید از اون رو با امکانات اضافی تر در قالب ورژن1.2 عرضه کردیم الان اساسی ترین مشکلی که پیش میاد اینه که چطوری آپدیت رو بزنیم روش یعنی همین الان دستی این کار رو میکنیم . و خیلی خیلی وقتمون رو میگیره و مشکلات خاص خودشو داره .

    الان راه حل به روز برای این مشکل چیه آیا باید از داکر یا گیت یا کامپوزر استفاده کرد یا یک سری مخازن دیگه که هم مشتری کارش راحت باشه هم ما یا نه کلاٌ داستانش فرق میکنه!؟

  • ٢ ماه پیش @amin به بحث اضافه نشدن foreign key جواب داد.

    @m-p

    بحث زیاد بودن کلید نیست . زمانی این ارور نشون داده میشه که نوع اون ستون هایی که میخواهید join بدید با هم فرق میکنه و نمیتون با هم مچ بشن یک مثال کوچیک

     $table->bigIncrements('id');
    
     $table->increments('id');

    (حالا یک مثال کوچیک بود و تو همه موارد این یکیه.) این 2 تا با هم خیلی فرق دارن و مچ نمیشن باید نوعشون با هم برابر باشه از هر لحاظ.

    حالا راه حال چیه 3 تا راه حل دارید شما:

    • راه اول اینه که نوع ستون های کلید هاتونو باهم برابر کنید .
    • راه دوم اینه که جدول هاتونو با مایگریشن بفرستید به دیتابیس و اونجا به صورت دستی کلید هارو انجام بدید.( همیشه کار میکنه)
    • راه سوم اینه که همه این هارو باهم تو یک جدول بنویسید و داخل همون باهم جویین بدید و بعد مایگریت کنید. دقت کنید که اینجا هم مقدار ها باید برابر باشند. ( یعنی همه جدول های زیر و ستون هاشو تو یه جدول مایگرت کنید) که این موضوع یه راه حل آماتور هستش که غالباٌ جواب میده.(پیشنهاد میشه)
  • ٢ ماه پیش @amin به بحث مشکل object not found در laravel voyager admin panel جواب داد.

    @amin1972

    ویجرتون پولی هست یا رایگان؟ (اینو به خاطر این میپرسم که تو رایگان بعضی از دسترسی هارو نمیده)

    قطعاٌ مشکل از مسیریابی و روتینگ شما هست. اگر به فایل web.php دسترسی دارید به راحتی میتونید روتتون رو درست کنید و مشکلتون حل بشه .

  • ٢ ماه پیش @amin به بحث فریمورک yii2 جواب داد.

    @amir_hossein

    درکتون میکنم خودم هم این مشکل رو داشتم حتیٌ امیر هم تو پاد کست ها به این مثله اشاره کرده, ولی اگه بتونید مدیرتون رو راضی و با دلیل قانعش کنید که به لاراول مهاجرت کنن خیلی هم برای شما خوب میشه هم برای شرکت.

  • ٢ ماه پیش @amin به بحث فریمورک yii2 جواب داد.

    @amir_hossein

    یه چیز سلیقه ای هست که با کدومFramework کار کنی و با کدوم بیشتر راحتی با همون کد بزن, yii2 هم از دوستانی که هستند پرس و جو کردم میگن که سرعت میده به کارت ولی در عوض لاراول هم خیلی قدرتمند تره و پکیج هاش هست که اونو تاپ کرده اینو از گوگل ترند هم میتونی نگاه کنی رتبه لاراول و yii2 اینجا

    یه مورد جالب اینه که ما ایرانی ها رتبه یک از نظر توسعه و پیشرفت تو برنامه نویسی داریم که رتبه لاراول رو تو الکسا نگاه کنید رتبه ی اول هستیم رتبه اول بیشترین سرچ لاراول ,مورد های دیگه رو هم میتونید سرچ کنید.

    یه چیز دیگه هم اینجا بگم چون ما اینجا بیشتر تو انجمن از لاراول بحث میشه و طبق این دلایلی که بالا گفتم و بیشتر از لاراول حمایت میکنیم. و قطعاٌ هرکی باشه با این شرایط میاد سمت لاراول که اگه تو laravel-news عضو باشی میبینی که روز به روز در حال توسعه هست و انجمن بسیار قوی داره تو laracasts ولی دیگر فریم ورک های php اینطوری نیست مثلcodeigniter,yii و ...

    حالا انتخاب با خودتون هست که میخواهید وقتتون رو کدوم بذارید. در ضمن اینارو گفتم که یک مقایسه کنید و بعد برید دنبال آموزش yii2

  • ٢ ماه پیش @amin به بحث پیدا کردن حفره امنیتی جواب داد.

    @woohee

    تقریباٌ این چیز هایی که گفتید هستند با کمی فرق و باید باید باید این هارو به ترتیب بگذرونی که دلایلش رو بالا گفتم چند تا مثال هم زدم.

  • ٣ ماه پیش @amin به بحث ارور ۵۰۳ جواب داد.

    @netwons

    با این اطلاعات کمی که از مشکلتون دادید فقط تنها مشکلی که میتونید داشته باشید و چون هم رو هاست هست , سرویس هاستتون رو ارتقا بدید سرویس فعلی جوابگوی request های شما نیست.

    چون ارور های 500 به بالا مربوط به سرور میشه اکثراٌ , با پشتیبانی هاستتون تماس بگیرید و مشکلتون رو مطرح کنید.

  • @psobhanlo

    منم چند روز پیش با خطای 500 رو برو شدم و Composer رو آپدیت کردم درست شد . بعد آپدیت هم ,dump کردم و مشکلم حل شد دستوراتش هم اینه

    @amir یا این یکی رو:

    composer update
    
    composer dump-autoload
    

    اول آپدیت کردم و بعد dump.

  • ٣ ماه پیش @amin به بحث پیدا کردن حفره امنیتی جواب داد.

    @woohee

    همه این هایی که دوستمون @tilkacoder عرض کردند درسته و به صورت طبقه بندی هست , ولی قبل از همه اینها باید یکی از توزیع های لینوکس رو بلد باشی و یک مورد دیگه هم که هست اگر مسلط به اپلیکیشن نویسی و طراحیش باشید کارتون خیلی راحت میشه و ساختار هارو درک میکنید و موارد بالا هم که @tilkacoder مراحلی هست که باید بگذرونید که به این مباحث باید مسلط باشید

    یک مثال کوچیک اینجا میرنم :

    • اگر شما ساختار دیتابیس هارو ندونید یادگیری Injection DB واستون مشکل خواهد بود

    • اگر ساختار شبکه رو بلد نباشید اگر جمع آوری اطلاعات هم کرده باشید باز هم به مشکل بر میخورید که این اطلاعاتی مثل پورت ها یا سرور ها به چه کاری میان و یا چی هستند

    • اگر درک درست از برنامه نویسی نداشته باشید اصن درک اکسپلویت خیلی سخت میشه واستون

    همون طور هم که @tilkacoder گفتن یادگیری اینا زمان بر هست و باید تجربه زیادی داشته باشید در این موضوع و همه اینا داخل یک سوال و بحث جا نمیشه چون مبحث خیلی خیلی گشترده ای هست.

  • ٣ ماه پیش @amin به بحث فریمورک جنگو جواب داد.

    @woohee

    اون لینک هایی که دادید نگاه کردم موضوع Django Admin به این صورت هستش که اومدن با جنگو CMS ساختند که در بالا هم @farahmand اشاره کردند به این موضوع و در مورد جنگو و سیستم مدیریت محتوا توضیحات دادند.

    جنگو ادمین هم ،همون نوا با ویجر تو لاراول هستش که تو این موضوع در انجمن راجبش بحث شده میتونید اطلاعات بیشتری در موردش بگیرید .

    باز هم هر گونه توضیحات تکمیلی و یا سوال داشتید در مورد این موضوع حتماٌ بیان کنید.

  • @tesla

    در مورد این موضوع چون تست نکردم نمیتونم زیاد نظر بدم اما میتونه دلایلی مثل این داشته باشه که چون کد php به صورت ساده هست و از هیچ معماری استفاده نمیکنه سرعت پردازش و لودش زیاد باشه و در لاراول این طوری نیست چون هم بحث روتینگ و مسیریابی و هم چون از معماریMVC استفاده میکنه شاید این کارها سرعت رو کم کنه تنها دلیلی که به نظرم میرسه همین بحث سرعت پردازش هست.(بر اساس گفته شما که میگید سریع ریدایرکت میشه) ولی بازم میتونید از دیگر دوستان هم یک مشورتی بگیرید.

  • @tesla

    کد های شما تقریباٌ درسته و یه مشکل کوچیکی که داره داخل کنترلرتون شما داخل هدرتون مدل 'Article' رو اضافه کردید و لازم نیست که تو تابع Create دوباره بیارید و کنار Request بنویسید.

    تابع Create شما :

    public function create(ArticleRequest $request)
        {
    
            Article::create([
                'user_id' => 1,
                'title' => $request->input('title'),
                'body' => $request->input('body')
            ]);
    
            return redirect('/');
        }

    راه اول : در کد های شما چون بحث Auth مطرح نیست و فقط میخواهید ثبت مقاله کنید با یک if و یک DB Query میتونید از این کار جلوگیری کنید. که مکانیزم کد اینطوری هستش میاد بررسی میکنه اگر مقاله ای با اون نام داخل دیتابیس باشه یک پیغام خطا بده و از ادامه کار صرف نظر کنه

    راه دوم: میتونید به وسیله jquery بیاید و همون اول اعتبار سنجیش کنید که اگر داخل دیتابیس موجود بود دیگه تو همون فیلد اول بمونه و اجازه نده کاربر فیلد های دیگر رو پرکنه ( که این اصولاٌ راه درستش هست )

    چون شما فقط میخواهید رو باتون هر چند بار کلیک کنه یکبار ثبت بشه راه اول بهترین راه هست که به صورت زیر میتونید به تابع Create خودتون اضافه کنید:

    if ($request->isMethod('post')){
        $data = $request->all();
        //شرط بررسی مقاله موجود که اگر بود یک پیام خطا میده برای کاربر
        $articleCount = Article::where('title',$data['title'])->count();
        if ($articleCount>0){
            return redirect()->back()->with('flash_message_error','این مقاله قبلاٌ ثبت شده است');
        }else{
            $article = new Article;
            $article->title =$data['title'];
            $article->body = $data['body'];
            $article->save();
    
                return redirect('/');
    
        }
    }

    چند تا نکته :

    • اول: این که مقایسه کردن با عنوان مقاله زیاد جالب نمیشه پیشنهاد میکنم اسم مقاله هم بذارید تو دیتا بیس و با اون مقایسه کنید
    • دوم: این که اگر از Bootstrap استفاده کرده باشید که با توجه به کدهای شما میبینم که استفاده کردید ارور رو نمایش میده .
    • سوم: این که راه دوم که بالا گفتم بسیار کاربردی تره ولی به هر حال یک پیشنهاد بود
    • چهارم: این که برای این که مورد دوم عملی بشه داخل کد های html فرمتون در یک جای مناسب کد های زیر رو قرار بدید که ارور رو نمایش بده:
    @if (Session::has('flash_message_error') )
                        <div class="alert alert-danger alert-block">
                            <button type="button" class="close" data-dismiss="alert">×</button>
                            <strong>{!! session('flash_message_error') !!}</strong>
                        </div>
                    @endif
                    @if (Session::has('flash_message_success') )
                        <div class="alert alert-success alert-block">
                            <button type="button" class="close" data-dismiss="alert">×</button>
                            <strong>{!! session('flash_message_success') !!}</strong>
                        </div>
    
                    @endif

    یک مورد دیگه اگر راه دوم رو خواستید داخل همین موضوع اشاره کنید که اگر دوست داشتید با jqueryهم که براتون توضیح بدم .

  • @kamran_tofig

    بهترین پکیج برای شمسی و جلالی پکیج hekmatinasser/verta که با مراجعه به مخزن گیت هاب نویسنده به راحتی میتونید راه اندازی کنید که به صورت فارسی تو گیت هاب توضیح داده لینک مخزن نویسنده: مخزن نویسنده

  • @amin1972

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

    اگر خواستین میتونید این ویدیو از سری ویدیو های لاراول سایت مشاهده کنید :این ویدیو

  • @behzad

    چرا احمقانه؟

    با نظر @farahmand موافقم تازه یه همچین متد هایی نداره که شما بالا گفتین. سوالت یکم جالب نیست پی اچ پی در واقع میاد مدریریت اون چیز هایی که @farahmand گفتند رو انجام میده. مثالت مثل این میمونه که میگی میخوام یه ساختمون بسازم و اون رو با لوله کشی آب گاز و پارتیشن بندی و انواع اقسام اجزای داخلی بسازم با اینا نمیشه ساختمون ساخت باید اول ستون های ساختمون رو بسازی , ( منظور این که php همون لوله ها و پارتیشن ها و خیلی چیز های دیگه هست که اصن خنده دار میاد واست که با اینا بخوایی یه سازه یا ساختمون بسازی یعنی اصن نمیشه همچین چیزی, یعنی اینا قابلیت ساخت ستون و پایه های ساختمون رو نداره)

  • ۴ ماه پیش @amin به بحث آپلود چند تصویر با Dropzone.js در Laravel جواب داد.

    @nastaran2018

    لطفاٌ کنترلرتون رو داخل تابع upload بنویسید و فرمت زیر رو رعایت کنید. با store هم میشه چون هر دوتاش post هستند ولی استاندارد رو رعایت کنید. کد بهینه شده شما:

     public function upload(Request $request)
        {
            $id=$request->get('id');
            $files=$request->file('file');
            $name=rand()."-".$id."-".$files->getClientOriginalName();
            if($files->move('uploads/gallery',$name)){
                $ProductImage=new ProductImage();
                $ProductImage->product_id=$id;
                $ProductImage->url=$name;
                $ProductImage->save();
            }
        }

    البته نمونه کدی که دادم به شما برای عکس های محصولات فروشگاه اینترنتی هستش لطفاٌ این فرمت رو رعایت کنید.و نسبت به پروژه خودتون تغییر بدید.