Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel 5-路线中的会话_Php_Session_Laravel_Laravel 5 - Fatal编程技术网

Php Laravel 5-路线中的会话

Php Laravel 5-路线中的会话,php,session,laravel,laravel-5,Php,Session,Laravel,Laravel 5,我想在Laravel 5中使用动态路由,这取决于语言偏好,而不是子域/分段。有一种默认语言,即使用户未登录,也可以更改它(使用GET参数)。更改将保留在会话中(注册用户可以保存它)。搜索引擎优化不应该是一个问题(有一个网站默认语言,机器人应该总是这样) 问题是routes.php中的应用程序会话不可用(我想是因为Laravel设计)。我想在routes.php中使用switch或trans()来动态创建它们,但它与应用程序的会话不同 我尝试过使用服务容器,但会话在这一点上没有完全工作(),因此我

我想在Laravel 5中使用动态路由,这取决于语言偏好,而不是子域/分段。有一种默认语言,即使用户未登录,也可以更改它(使用GET参数)。更改将保留在会话中(注册用户可以保存它)。搜索引擎优化不应该是一个问题(有一个网站默认语言,机器人应该总是这样)

问题是routes.php中的应用程序会话不可用(我想是因为Laravel设计)。我想在routes.php中使用switch或trans()来动态创建它们,但它与应用程序的会话不同

我尝试过使用服务容器,但会话在这一点上没有完全工作(),因此我无法使用它初始化配置变量

中间件是另一种选择,但它们是在路由之后加载的


有没有办法在路由中使用会话?我有没有更好的方法来处理这个问题?

在请求完成后,不一定要加载中间件。请看以下文档:

中间件是在请求之前还是之后运行取决于中间件本身

如果我理解正确,您可以使用以下代码参考相应的控制器:

<?php namespace App\Http\Middleware;

use Closure;

class BeforeMiddleware implements Middleware {

    public function handle($request, Closure $next)
    {
        // Perform action

        return $next($request);
    }
}

我刚刚尝试了两种方法(之前和之后)来测试它,它们在请求之前和之后执行,但都是在路由之后执行的。也许我需要一个不同的方法。关于规范url,你是对的,我必须使用它。你到底想要实现什么?将使用不同语言的用户发送到不同的控制器?允许用户切换到不同的语言,包括URL。例如,页面(内容为英语)将变为(内容为西班牙语)。所以同一主题的URL和内容会有所不同。啊,就像这样。因为我的信息很少,所以我假设这些页面存储在数据库中?为什么不将每个页面路由到一个控制器,该控制器获取会话,然后基于该会话执行数据库请求?比如:
“表”\会话::get('lang')是的,它们中的大多数都在数据库中,我使用与您所说的类似的东西(当没有找到特定规则并在数据库中搜索时,使用“页面”通用控制器)。但是,我需要一些更复杂的页面,这些页面在路由中需要特定的规则,例如登录、注册、配置文件、联系人、帮助、常见问题解答等。因此,现在我有了类似的内容(在switch/if或使用trans()):Route::get('contact','ContactController@index'); 路由::get('contacto','ContactController@index'); 同样,我需要语言来区分我应该过滤哪些规则(或替代规则)。