本文整理汇总了PHP中Symfony\Component\HttpFoundation\StreamedResponse::setData方法的典型用法代码示例。如果您正苦于以下问题:PHP StreamedResponse::setData方法的具体用法?PHP StreamedResponse::setData怎么用?PHP StreamedResponse::setData使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Symfony\Component\HttpFoundation\StreamedResponse
的用法示例。
在下文中一共展示了StreamedResponse::setData方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: submit
public function submit($data, $media)
{
// some beginners' validation, while through validation will happen in the Comment model
$validator = new Validator();
$validator->add('thread_num', _i('Thread Number'), [new Assert\NotBlank()])->add('name', _i('Name'), [new Assert\Length(['max' => 64])])->add('email', _i('Email'), [new Assert\Length(['max' => 64])])->add('title', _i('Title'), [new Assert\Length(['max' => 64])])->add('delpass', _i('Deletion pass'), [new Assert\Length(['min' => 3, 'max' => 32])]);
// no empty posts without images
if ($media === null) {
$validator->add('comment', _i('Comment'), [new Assert\NotBlank(), new Assert\Length(['min' => 3])]);
}
// this is for redirecting, not for the database
$limit = false;
if (isset($data['last_limit'])) {
$limit = intval($data['last_limit']);
unset($data['last_limit']);
}
$validator->validate($data);
if (!$validator->getViolations()->count()) {
try {
$data['poster_ip'] = Inet::ptod($this->getRequest()->getClientIp());
$bulk = new CommentBulk();
$bulk->import($data, $this->radix);
$comment = new CommentInsert($this->getContext(), $bulk);
$comment->insert($media, $data);
} catch (\Foolz\Foolfuuka\Model\CommentSendingRequestCaptchaException $e) {
if ($this->getRequest()->isXmlHttpRequest()) {
return $this->response->setData(['captcha' => true]);
} else {
return $this->error(_i('Your message looked like spam. Make sure you have JavaScript enabled to display the reCAPTCHA to submit the comment.'));
}
} catch (\Foolz\Foolfuuka\Model\CommentSendingException $e) {
if ($this->getRequest()->isXmlHttpRequest()) {
return $this->response->setData(['error' => $e->getMessage()]);
} else {
return $this->error($e->getMessage());
}
}
} else {
if ($this->getRequest()->isXmlHttpRequest()) {
return $this->response->setData(['error' => $validator->getViolations()->getText()]);
} else {
return $this->error($validator->getViolations()->getHtml());
}
}
if ($this->request->isXmlHttpRequest()) {
$latest_doc_id = $this->getPost('latest_doc_id');
if ($latest_doc_id && ctype_digit((string) $latest_doc_id)) {
try {
$board = Board::forge($this->getContext())->getThread($comment->comment->thread_num)->setRadix($this->radix)->setOptions(['type' => 'from_doc_id', 'latest_doc_id' => $latest_doc_id]);
$comments = $board->getComments();
} catch (\Foolz\Foolfuuka\Model\BoardThreadNotFoundException $e) {
return $this->error(_i('Thread not found.'));
} catch (\Foolz\Foolfuuka\Model\BoardException $e) {
return $this->error(_i('Unknown error.'));
}
$comment_obj = new Comment($this->getContext());
$comment_obj->setControllerMethod($limit ? 'last/' . $limit : 'thread');
$media_obj = new Media($this->getContext());
$m = null;
foreach ($board->getCommentsUnsorted() as $bulk) {
$comment_obj->setBulk($bulk, $this->radix);
if ($bulk->media) {
$media_obj->setBulk($bulk, $this->radix);
$m = $media_obj;
} else {
$m = null;
}
if ($this->builder) {
$this->param_manager->setParam('controller_method', $limit ? 'last/' . $limit : 'thread');
$partial = $this->builder->createPartial('board_comment', 'board_comment');
$partial->getParamManager()->setParam('p', $comment_obj)->setParam('p_media', $m);
$bulk->comment->formatted = $partial->build();
$partial->clearBuilt();
}
}
$this->response->setData(['success' => _i('Message sent.')] + $comments);
} else {
if ($this->builder) {
$this->param_manager->setParam('controller_method', $limit ? 'last/' . $limit : 'thread');
$partial = $this->builder->createPartial('board_comment', 'board_comment');
$partial->getParamManager()->setParam('p', new Comment($this->getContext(), $comment->bulk))->setParam('p_media', new Media($this->getContext(), $comment->bulk));
$bulk->comment->formatted = $partial->build();
$partial->clearBuilt();
}
$this->response->setData(['success' => _i('Message sent.'), 'thread_num' => $comment->comment->thread_num, $comment->comment->thread_num => ['posts' => [$comment->bulk]]]);
}
} else {
$this->builder->createLayout('redirect')->getParamManager()->setParam('url', $this->uri->create([$this->radix->shortname, !$limit ? 'thread' : 'last/' . $limit, $comment->comment->thread_num]) . '#' . $comment->comment->num);
$this->builder->getProps()->addTitle(_i('Redirecting'));
$this->response->setContent($this->builder->build());
}
return $this->response;
}