محسن مهری
4 سال پیش توسط محسن مهری مطرح شد
8 پاسخ

مشکل با تابع env و فایل services.php

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

  • از ورژن xamp ام هستش ؟
  • از ورژن لاراوله ؟
  • یا یک مشکل نیست همگانیست ؟ :)

    1 -  
    $conf=\\Config::get('services');  
    dd($conf);  
    2 -  
    dd (env('APPURL'));
    

    دوستان مشکل اولم که توی قسمت کد نوشتم اینه که هر چیزی که به لیست services.php اضافه میکنم نمیشناسه و فقط همون سه تای از پیش تعریف شده ی خودش رو بر میگردونه ( یعنی mailgun,postmarks,see فقط همین سه تا اما چیزی که من اضافه کردم به لیست رو نه؟!!)
    مشکل دوم : اینو اصلا null نمایش میده در صورتی که من توی فایل .env این متغیر رو مقدار دهی کردم
    ورژن لاراولم : اخرین ورژن
    ممنون از همه پیشاپیش


ثبت پرسش جدید
HRH
تخصص : back-end developer , switching...
@h.r.hassani 4 سال پیش آپدیت شد
1

دستور php artisan config:clear رو بزنید احتمال مشکلتون درست می شه . ولی در کل همیشه دستور php artisan optimize بزنید تا همه کس ها پاک بشه و توی دولوپ راحت باشید


محسن مهری
تخصص : برنامه نویس back-end با زبان...
@mohsen.mehri6101 4 سال پیش مطرح شد
0

@h.r.hassani
سلام دوست عزیز و ممنون از راهنماییتون
دستوری که فرمودین رو اجرا کردم و مشکل اولم حل شد - اما مشکل دومم نه ؟
و یک سوال دیگه الان که دستور php artisan optimize رو میزنم چنین اروری نشون میده ؟مشکل کجاست؟

Configuration cache cleared!
Configuration cached successfully!
Route cache cleared!

   LogicException

  Unable to prepare route [api/user] for serialization. Uses Closure.

  at F:\pe7\vendor\laravel\framework\src\Illuminate\Routing\Route.php:1150
    1146|      */
    1147|     public function prepareForSerialization()
    1148|     {
    1149|         if ($this->action['uses'] instanceof Closure) {
  > 1150|             throw new LogicException("Unable to prepare route [{$this->uri}] for serialization. Uses Closure.");
    1151|         }
    1152|
    1153|         $this->compileRoute();
    1154|

  1   F:\pe7\vendor\laravel\framework\src\Illuminate\Foundation\Console\RouteCacheCommand.php:62
      Illuminate\Routing\Route::prepareForSerialization()

  2   F:\pe7\vendor\laravel\framework\src\Illuminate\Container\BoundMethod.php:37
      Illuminate\Foundation\Console\RouteCacheCommand::handle()

مهدی عقیقی
تخصص : برنامه نویس وب
@MehdiAghighi 4 سال پیش آپدیت شد
1

@mohsen.mehri6101 سلام وقتتون بخیر.

دستور php artisan optimize روت‌ها رو کش می‌کنه و وقتی شما داخل یکی از روت‌هاتون از کنترلر استفاده نکردید و از Closure استفاده کردید، امکان کش کردن روت‌ها وجود نداره برای همین این ارور رو میده.

یا اون روتی که از Closure استفاده کرده رو ببرید داخل کنترلر یا امکان کش کردن روت‌ها رو ندارید.

Route::get('/some/route', function() { return 'Hello World'; })

اگر نمی‌دونید Closure چیه به اون تابعی که به عنوان پارامتر پاس داده میشه به روت‌ها Closure هستن ( وقتی controller action باشه یعنی مثلا "HomeController@index" در این صورت Closure نیست. )

این لینک رو هم می‌تونید مطالعه کنید.


مهدی عقیقی
تخصص : برنامه نویس وب
@MehdiAghighi 4 سال پیش مطرح شد
1

@hesammousavi سلام اقا من پاسخ بالا رو هر کاری می‌کنم اخر پاسخ خودش یه ``` اضافه می‌کنه خراب میشه. چندین بار پاسخ رو پاک کردم دوباره گزاشتم بازم این اتفاق افتاد. توی یه بحث دیگه هم می‌خواستم پاسخ بدم این اتفاق افتاد.

ممنون میشم یه بررسی بکنید :)


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

@MehdiAghighi
احتمالا از یک کاراکتر مشکل ساز استفاده کردید بدونه اینکه بدونید در اون کد با حذف اون کد و کپی دوباره‌اش از یجای دیگه درست شد


محسن مهری
تخصص : برنامه نویس back-end با زبان...
@mohsen.mehri6101 4 سال پیش مطرح شد
0

@MehdiAghighi
سلام ممنون آقا مهدی - تشکر از جواب کاملتون
ولی نمیدونم چرا خب تابع env کار نمیکنه ؟!منظور با پاک کردن کش اون مشکل قبلی حذف شد اما هنوز این مشکل پابرجاست؟!
هر چی dd میگیرم از تابع env همه رو null برمیگردونه؟!


مهدی عقیقی
تخصص : برنامه نویس وب
@MehdiAghighi 4 سال پیش مطرح شد
0

@mohsen.mehri6101 خواهش میکنم :)

الان من دیدم شما APPURL رو خواستید از تابع env بگیرید. مطمئنید که همچین مقداری رو تعریف کردید ؟ اگر باشه کش رو هم پاک کرده باشید باید درست کار کنه


HRH
تخصص : back-end developer , switching...
@h.r.hassani 4 سال پیش مطرح شد
1

@mohsen.mehri6101
این تو خود سایت لاراول اومده که اگر config هاتون رو کش کنید تابع env مقدار null رو برمی گردونه. حالا اگر این دستورات رو زدید و بازم مشکل دارید برید bootstrap/cache/config.php رو به جای دیگه منتقل کنید تا لاراول دوباره همه رو کش کنه . اما اگر مشکل پیدا کردید فایل قبلی رو برگردونید


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

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