Помощники Laravel не работают правильно в некоторых контекстах / классах

У меня есть вопрос об использовании помощников Laravel (в моем случае помощник маршрута).

При вызове помощника в контроллерах все работает нормально. Например:

class PollController extends Controller {

public function show(Request $request)
{
$route = route('polls.show');
// returns 'http://application.app/polls/show'
$data = [
'user_token' => $request->get('token')
];

return view('polls.form')->with($data);
}

public function save(Request $request)
{
dd($request->all());
}
}

Но при вызове одного и того же помощника в ремесленнике повозится или в командном классе. Например:

class Inspire extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'inspire';

/**
* The console command description.
*
* @var string
*/
protected $description = 'Display an inspiring quote';

/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
$route = route('polls.show'); // **returns 'http://localhost/polls/show'**
$this->comment(PHP_EOL.Inspiring::quote().PHP_EOL);
}
}

Это (второй случай) не хорошо для меня. Я пытался решить эту проблему с помощью констант для сохранения правильного значения, а затем использовать его в классе команд, но у меня была та же проблема.

Я хочу решить эту проблему, и я хочу знать, почему поведение в этих случаях отличается.

Заранее спасибо.

1

Решение

route() помощник (а также url() и несколько битов функциональности Laravel) использует имя домена из текущего HTTP-запроса. Так как команды Artisan не иметь HTTP-запрос, Laravel возвращается к app.url настройка конфигурации. Измените его (или, по умолчанию, ваш .env APP_URL настройка) по умолчанию http://localhost на URL вашего сайта.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]