简体   繁体   English

如何将作业中的语言环境参数传递给 controller?

[英]How to pass locale parameter from job into controller?

On laravel site making Http Post request inside of job handle I need to pass locale parameter.在 laravel 网站上制作 Http 在作业句柄内发布请求我需要传递语言环境参数。 And this locale must be used in controller.并且必须在 controller 中使用此语言环境。

I use astrotomic/laravel-translatable and defined in config/translatable.php with default 'en':我使用 astrotomic/laravel-translatable 并在 config/translatable.php 中定义,默认为“en”:

'locales' => [
    'en',
    'fr',
...


'locale' => null,
...


<?php

namespace App\Jobs;

class BannersCRUDTest implements ShouldQueue
{
    public function handle()
    {
        $currentLocale = 'fr'; // I path French

        App::setLocale($currentLocale);
        session()->put('locale', $currentLocale); // That does not work...

        $response = Http::post(route('banners.filter' ));

But checking in related Controller with getLocale method I see English但是用 getLocale 方法检查相关的 Controller 我看到英文

class BannerController extends Controller
{

    public function filter(): array
    {
        \Log::info(' -1 BannerController app()->getLocale()::'); // I see 'en' value
        \Log::info(app()->getLocale();
        ...

    How have I to pass locale from Job to Controller ? I prefer to use App::setLocale, not as parameter in url of request...
    
    
"laravel/framework": "^9.19",
"guzzlehttp/guzzle": "^7.2",
"astrotomic/laravel-translatable": "^11.11",
"mxl/laravel-job": "^1.3",

Thanks in advance!提前致谢!

You use a job (BannersCRUDTest) to set locale from 'en' to 'fr'您使用作业 (BannersCRUDTest) 将区域设置从“en”设置为“fr”

This job of yours is set to be queued.你的这个工作被设置为排队。

  • Make sure you have call / dispatch this job properly.确保您已正确调用/发送此作业。
  • And also make sure the queue process is properly run.还要确保队列进程正常运行。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何使用方法将参数从 controller 传递到 model? - How to pass parameter from controller to model on with method? 如何将参数从刀片模板传递到 controller - How to pass a parameter from blade template to controller Laravel路由:如何将参数/参数从一个控制器传递到控制器 - Laravel routing: how to pass parameter/arguments from one controller to controller Laravel - 如何将参数从控制器传递到路由并在另一个控制器中使用它? - Laravel - How to pass parameter from controller to route and use it in another controller? Laravel 9 如何将 url 中的参数从一个 controller 传递到另一个 Z594C103F2C06E04C3C3DAZ8AB?E - Laravel 9 how to pass parameter in url from one controller to another controller? 从路径将参数传递给控制器 - Pass parameter to controller from route 如何在路由中传递参数给控制器? - How to pass a parameter in routes to the controller? 如何将模型作为参数传递给控制器 - how to pass model as parameter to controller 如何通过另一个函数将参数传递给资源控制器中的show()方法 - how to pass parameter to show() method in resource controller from another function 如何将多个参数从 Laravel 中的 controller 传递给路由? (整数和 Varchar) - How to pass multiple parameter to a Route from controller in Laravel ? (Integer & Varchar)
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM