Php Laravel 5-路线中的会话
我想在Laravel 5中使用动态路由,这取决于语言偏好,而不是子域/分段。有一种默认语言,即使用户未登录,也可以更改它(使用GET参数)。更改将保留在会话中(注册用户可以保存它)。搜索引擎优化不应该是一个问题(有一个网站默认语言,机器人应该总是这样) 问题是routes.php中的应用程序会话不可用(我想是因为Laravel设计)。我想在routes.php中使用switch或trans()来动态创建它们,但它与应用程序的会话不同 我尝试过使用服务容器,但会话在这一点上没有完全工作(),因此我无法使用它初始化配置变量 中间件是另一种选择,但它们是在路由之后加载的Php Laravel 5-路线中的会话,php,session,laravel,laravel-5,Php,Session,Laravel,Laravel 5,我想在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'); 同样,我需要语言来区分我应该过滤哪些规则(或替代规则)。