ماه: فوریه 2017

  • ذخیره کردن شکلک ها در MySQL

    اخیرا که ملت همه ریختن تو شبکه اجتماعی و با شکلک – ایموجی – ها و… سروکار دارن ما هم باید بتونیم کارشون رو راه بندازیم 🙂

    کانکشن پیشفرض MySQL لاراول به صورت پیشفرض از کاراکتر ست utf8 استفاده میکنه که نمیتونه شکلک ها رو ذخیره کنه و معمولا با این خطا مواجه میشیم :

    SQLSTATE[HY000]: General error: 1366 Incorrect string value...

    برای حل این مشکل کانکشن mysql  در config/database.php  رو به صورت زیر اصلاح کنید :

    'mysql' => [
        'driver' => 'mysql',
    	[...]
        'charset' => 'utf8mb4',
        'collation' => 'utf8mb4_unicode_ci',
        [....]

    و دیتابیس رو ریست کنید. حواستون باشه که از دیتاتون قبلش بکاپ بگیرید…

  • خطای migrate لاراول ۵٫۴

    همونطور که میدونید لاراول ۵٫۴ مدتیه که منتشر شده. توی این نسخه، لاراول توی کاراکتر ست پیشفرضش یسری تغییری داده و کاراکتر ست فعلی اون utf8mb4 هست که قابلیت پشتیبانی از ایموجی ها رو هم داره.  خطایی که هنگام اجرایphp artisan migrate  توی MySQL  زیر  ۵٫۷٫۷ باهاش مواجه مشید یه چیزی مثل خطای زیر هست :

    [Illuminate\Database\QueryException]
    SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter table users add unique users_email_unique(email))
    
    [PDOException]
    SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes

    برای حل این مشکل توی فایل AppServiceProvider.php  طول پشفرض رشته رو تغییر بدید…

    use Illuminate\Support\Facades\Schema;
    
    public function boot()
    {
        Schema::defaultStringLength(191);
    }

    الان دیگه نباید مشکلی وجود داشته باشه… موفق باشید