laravel - 为什么我想过滤项目时会出现这个问题
问题描述
我想将翻译功能添加到我的网站。但我遇到了这个问题
[Route: filterdata] [URI: {locale}/project/{filter}] 缺少必需的参数
这是应用程序网络路由:
Route::get('/', function () {
return redirect(app()->getLocale());
});
Route::get('/project', function () {
return redirect(app()->getLocale());
});
Route::group([
'prefix' => '{locale}',
'where' => ['locale' => '[a-zA-Z]{2}'],
'middleware' => 'setlocale',
], function(){
Route::get('/', function(){
return view('pages.home');
})->name('home');
Route::get('/project/{filter}', 'ProjectController@filterProject')->name('filterdata');
});
这是刀片项目
<a class="btn btn-default" href="{{ url(app()->getLocale().'/project/Branding') }}" role="button">Branding</a>
这是控制器:
public function filterProject($locale, $filter){
$locale = $locale;
$filter = str_replace('-',' ',$filter);
$url = Lang::get('proyek.project');
$url2 = json_encode($url);
$data = json_decode($url2, true);
$data = array_filter($data);
if(collect($data)->where('tag1',"{$filter}")->all() == true){
$project = collect($data)->where('tag1',"{$filter}")->all();
}elseif(collect($data)->where('tag2',"{$filter}")->all() == true){
$project = collect($data)->where('tag2',"{$filter}")->all();
}elseif(collect($data)->where('tag3',"{$filter}")->all() == true){
$project = collect($data)->where('tag3',"{$filter}")->all();
}else{
$project = collect($data)->all();
}
return view ('pages/projects', compact('project','locale','filter'));
}
这是我用于语言切换的按钮:
<div class="form-check d-flex align-items-center">
<input type="radio" class="form-check-input form-control" name="language" id="languageen" value="{{ route(\Illuminate\Support\Facades\Route::currentRouteName(), 'en') }}" onchange="location = this.value;" @if(app()->getLocale() == 'en') checked @endif>
<label class="form-check-label control-label" for="languageen">
EN
</label>
</div>
<div class="form-check d-flex align-items-center">
<input type="radio" class="form-check-input form-control" name="language" id="languageid" value="{{ route(\Illuminate\Support\Facades\Route::currentRouteName(), 'id') }}" onchange="location = this.value;" @if(app()->getLocale() == 'id') checked @endif>
<label class="form-check-label control-label" for="languageid">
ID
</label>
</div>
解决方案
兹拉坦
“品牌”是一个过滤器
<a class="btn btn-default" href="{{ url(app()->getLocale().'/project/Branding') }}" role="button">Branding</a>
推荐阅读
- python - 从路径导入函数到列表/字典
- algorithmic-trading - 早上第一根蜡烛的最高点
- java - 实现自定义方法参考 java 的错误结果
- haskell - 约束中的非类型变量参数:Enum A => Ord A
- php - 在 cPanel 中实例化新的 PHPMailer 类时 PHP 代码中断
- c# - 尝试使用启动文件中的 GetSection 访问配置值时为空。(IOptions-config 检索)
- d3.js - D3 每个轴上不同的缩放系数
- sql - 删除另一个表没有指向的重复记录
- javascript - Fat Arrow 函数/回调函数的类型是什么?
- google-smart-home - action.devices.traits.Modes 上的某些模式似乎不起作用