راکت

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

8 پاسخ

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

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

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

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

ثبت پرسش جدید

پاسخ‌ها

8
HRH
HRH
@h.r.hassani

تخصص: back-end developer , switching to AI

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

محسن مهری
محسن مهری
@mohsen.mehri6101

تخصص: برنامه نویس back-end با زبان php framework laravel

@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

تخصص: برنامه نویس وب

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

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

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

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

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

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

مهدی عقیقی
مهدی عقیقی
@MehdiAghighi

تخصص: برنامه نویس وب

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

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

حسام موسوی
حسام موسوی
@hesammousavi

تخصص: طراح و برنامه نویس

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

محسن مهری
محسن مهری
@mohsen.mehri6101

تخصص: برنامه نویس back-end با زبان php framework laravel

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

مهدی عقیقی
مهدی عقیقی
@MehdiAghighi

تخصص: برنامه نویس وب

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

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

HRH
HRH
@h.r.hassani

تخصص: back-end developer , switching to AI

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

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

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