我在使用Symfony 4.1项目下的FOSRestBundle返回视图时遇到问题.
这是我的控制器的代码:
class NewsController extends FOSRestController
{
public function getNewsAction()
{
$data = ['news1', 'news2'];
$view = $this->view($data, 200);
return $this->handleView($view);
}
}
Run Code Online (Sandbox Code Playgroud)
fos_rest.yaml
fos_rest:
param_fetcher_listener: true
allowed_methods_listener: true
routing_loader: true
view:
view_response_listener: 'force'
format_listener:
rules:
- { path: ^/api, prefer_extension: true, fallback_format: json, priorities: [ json, html ] }
Run Code Online (Sandbox Code Playgroud)
framework.yaml
framework:
secret: '%env(APP_SECRET)%'
php_errors:
log: true
sensio_framework_extra:
view: { annotations: true }
Run Code Online (Sandbox Code Playgroud)
所以我有非常基本的配置,我仍然会收到这样的错误:
(1/1)RuntimeException必须启用SensioFrameworkExtraBundle视图注释才能使用ViewResponseListener.
我试图删除"view:view_response_listener:'force'",但后来我遇到了这个错误:
必须在FOS\RestBundle\View\ViewHandler中注入Symfony\Bundle\FrameworkBundle\Templating\EngineInterface>的实例才能呈现模板.
我几个小时都在挣扎.是因为Symfony 4 beta状态?或者也许我做错了什么?也许我想念一些家属?我在官方文档中找不到任何有关此问题的帮助.
我有rest api,它返回带有数据的json数组。在客户端,我使用此代码从请求创建对象。
public getNews(): Observable<News[]> {
return this.http.get(this.baseUrl + '/news')
.pipe(
catchError(this.handleError('getNews', []))
)
.map(res => {
let response: any = res;
return response.map((item) => new News(item));
});
}
Run Code Online (Sandbox Code Playgroud)
订阅:
this.restProvider.getNews().subscribe((news: News[]) => {
this.news = news;
});
Run Code Online (Sandbox Code Playgroud)
但是,当响应不是数组而只有单个元素时,我该如何解决问题?或者响应是错误的,例如来自 API 的意外数据?
目前在这些情况下,我的应用程序抛出此错误:
response.map 不是函数
我有html文件,看起来像这样:
<ul>
<li>item 1</li>
<li>item 2</li>
<li>item 3</li>
</ul>
<ul>
<li>smth 1 2 3..</li>
<li>another</li>
<ul>
<ul>
<li>smth 1 2 3..</li>
<li>another</li>
<ul>
Run Code Online (Sandbox Code Playgroud)
我试图从第一个ul列表中获取元素.我正在使用此代码,但它返回错误:
<?php
$dom = new DOMDocument();
$dom->loadHTML($data);
$postalCodesList = $dom->getElementsByTagName('ul');
foreach ($postalCodesList->item(0) as $postalCodesList) {
echo $postalCodesList->nodeValue.'<br />';
}
?>
Run Code Online (Sandbox Code Playgroud) 我正在阅读Angular 5 http 教程.一切都运行良好,直到我坚持这个奇怪的结构我的离子项目抛出错误,"没有定义".
/**
* Handle Http operation that failed.
* Let the app continue.
* @param operation - name of the operation that failed
* @param result - optional value to return as the observable result
*/
private handleError<T> (operation = 'operation', result?: T) {
return (error: any): Observable<T> => {
// TODO: send the error to remote logging infrastructure
console.error(error); // log to console instead
// TODO: better job of transforming error for user consumption
this.log(`${operation} …Run Code Online (Sandbox Code Playgroud)