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‘)意思是波斯语和网站工作完美,所以没有错误!
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');
});这是我的代码,你需要知道我的代码!.你能解释为什么朗的变量不见了吗?
为了解决这个问题,请写正确的代码!
谢谢你抽出宝贵的时间。
发布于 2022-06-12 11:04:41
路线在上面。
我的规则对我来说是多么的有用!
把这些代码放在一个管理语言的中间件中
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会工作得很好,但是您需要管理函数,管理页面的示例代码:
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,标题,文字,鼻涕虫..。
1 , contact us , bla bla , contact_us语言: id,标题,方向,鼻涕虫
1 , farsi , right , fa
2 , english , left , enPage_contents : id,language_id,page_id,标题,文本,
1 , 2 , 1 , contact us , bla bla , ...
2 , 1 , 1 , تماس با ما , bla bla farsi things , ...这是我个人的经验,你可以不用上课就能做到!100%用波斯语和英语两种语言工作和检查。
https://stackoverflow.com/questions/72532087
复制相似问题