Я в основном форматирую URL перед отправкой моего объекта в представление для циклического просмотра (с foreach()
на $submissions
. У меня проблема в том, что parse_url () принимает один индекс, а не весь массив объект.
У меня есть этот метод в моем SubmissionsController:
public function newest() {
$submissions = $this->Submission->find('all', array(
'conditions' => array('Submission.approved' => '1'),
'order' => 'Submission.created DESC'
));
$this->set('submissions', $submissions);
$this->set('sourceShortUrl', AppController::shortSource($submissions));
}
В моем AppController у меня есть этот метод, который возвращает отформатированный URL:
protected function shortSource($source) {
return $sourceShortUrl = str_ireplace('www.', '', parse_url($source, PHP_URL_HOST));
}
Это работает для отдельных записей, но parse_url не может принимать массивы, так есть ли в контроллере способ отправки индекса объекта? Например. $ submissions ['Submission'] ['source'] до того, как я просмотрю его в представлении?
Моя альтернатива заключалась в том, чтобы сделать что-то подобное в моем shortSource($source)
методе:
if (is_array($source)) {
for ($i = 0; $i < count($source); $i++) {
return $sourceShortUrl = str_ireplace('www.', '', parse_url($source[$i]['Submission']['source'], PHP_URL_HOST));
}
}
Но это просто возвращение первого (очевидно). Каков наилучший способ сделать это?