[英]Passing array containing accents from Laravel to vue.js
我正在尝试将对象数组从Laravel发送到Vue.js数据。 该代码仅在App::isLocale('fr') === false
我的意思是不带重音。
还有另一种将数组传递给vue.js的方法吗?
控制者
public function dashboard($userToken)
{
$data = [];
$data['projects'] = $this->user->listprojects($userToken);
if (App::isLocale('fr')) {
setlocale(LC_TIME, "fr_FR");
} else {
setlocale(LC_TIME, "en_US");
}
foreach ($data['projects'] as $project) {
$project->date = strftime('%d %B %Y - %H:%M',$project->date) ;
}
return view('dashboard',$data);
}
模型
public function listprojects($userToken){
$projects = DB::table('projects')
->select('project_name as name',
'project_token as token',
->where('project_user_id', $userToken)
->orderBy('project_date_modif', 'desc')
->get();
return $projects;
}
视图
<script>
var app = new Vue({
el: '#app',
data: {
projects: <?php echo htmlspecialchars_decode($projects) ?>
}
});
</script>
这样将您的数组转换为json
return view('dashboard',compact("data"));
然后在Vue.js中将其转换回去。
问题出在函数strftime
,根据这篇文章 ,它存在一些错误。 所以我像这样改变了控制器:
public function dashboard($userToken)
{
$data = [];
$data['projects'] = $this->user->listprojects($userToken);
if (App::isLocale('fr')) {
setlocale(LC_TIME, "fr_FR");
} else {
setlocale(LC_TIME, "en_US");
}
foreach ($data['projects'] as $project) {
$project->date = utf8_encode(strftime('%d %B %Y - %H:%M',$project->date) );
}
return view('dashboard',compact("data"));
}
@Babak之类的视图建议:
<script>
var app = new Vue({
el: '#app',
data: {
presentations: <?php echo(json_encode($data['projects'])) ?>
}
});
</script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.