首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >路由: lang URI:{lang}/ product.show /{id}缺少参数:lang

路由: lang URI:{lang}/ product.show /{id}缺少参数:lang
EN

Stack Overflow用户
提问于 2022-06-07 13:30:04
回答 1查看 46关注 0票数 0

1:网站已经完成(可以设置语言{中间件和内核设置})。

2:所有线路设置正确,多次检查,视图和变量无问题。

他说:我不想使用会话,所以不要尝试那种方式(如果我的方法有任何解决方案的话),我会很感激}。

4:我用了Group,我想用前缀来处理本地化过程.

所以这是我的代码,我得到了这个错误

Illuminate\Routing\Exceptions\UrlGenerationException缺少路由所需的参数: product.show缺少参数: lang。(浏览: C:\wamp64\www\shopers\laravel\resources\views\home.blade.php)

要了解信息:在home.blade.php中没有遗漏的路由,我检查了很多方法,其中之一是字符串( 'fa‘)意思是波斯语和网站工作完美,所以没有错误!

代码语言:javascript
复制
Route::group([ 'middleware'=>['language','navbar'] , 'prefix'=>'{lang}' ], function($lang) {

    Route::get('/',    [App\Http\Controllers\HomeController::class, 'index'])->name('home');
    Auth::routes();
    
    Route::get('/page/{id}/{slug?}',                            [\App\Http\Controllers\PageController::class,'show'])->name('page.show');
    Route::post('basket/add/{id}',                              [\App\Http\Controllers\ProductController::class,'basket_add'])->name('basket.add.item');

});

这是我的代码,你需要知道我的代码!.你能解释为什么朗的变量不见了吗?

为了解决这个问题,请写正确的代码!

谢谢你抽出宝贵的时间。

EN

回答 1

Stack Overflow用户

发布于 2022-06-12 11:04:41

路线在上面。

我的规则对我来说是多么的有用!

把这些代码放在一个管理语言的中间件中

代码语言:javascript
复制
    public function handle($request, Closure $next)
    {

        $lang = $request->segment(1) ;
        if( $lang == 'fa' || $lang == 'en' )
        {
            URL::defaults(['lang' => $lang]);
            App::setLocale($lang);
            $language = Language::where('slug',$lang)->first();
            $request ->attributes->add(['language' => $language]);
            view()->share('language',$language);
        }
        else
        {
            abort(404);
        }
        return $next($request);
    }

Home会工作得很好,但是您需要管理函数,管理页面的示例代码:

代码语言:javascript
复制
class PageController extends Controller
{
    //
    function show (Request $request , $lang , $id)
    {
        $language = $request ->attributes->get('language' );
        $page     = PageContent::where(['language_id'=>$language->id ,'id'=>$id])->firstOrFail();

        return view('page-show',compact('page'));
    }
}

您需要管理数据库的语言,如

页码: id,标题,文字,鼻涕虫..。

代码语言:javascript
复制
    1   , contact us  , bla bla , contact_us

语言: id,标题,方向,鼻涕虫

代码语言:javascript
复制
        1  , farsi , right , fa

        2  , english , left , en

Page_contents : id,language_id,page_id,标题,文本,

代码语言:javascript
复制
             1  , 2           ,  1   ,   contact us , bla bla , ...
 
             2  , 1           ,  1   ,   تماس با ما    ,  bla bla farsi things , ...

这是我个人的经验,你可以不用上课就能做到!100%用波斯语和英语两种语言工作和检查。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72532087

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档