繁体   English   中英

将包含口音的数组从Laravel传递到vue.js

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM