когда пользователь вводит полный URL-адрес. Я хочу сохранить только идентификатор YouTube ... Предварительный анализ и извлечение идентификатора видео, а затем он будет сохранен в базе данных. Проблема заключается в том, как выполнить предварительную проверку и извлечь идентификатор YouTube перед сохранением полного URL
спасибо за помощь
// это функция add () в videos_controller
function add() {
if (!empty($this->data)) {
$this->Video->create();
if ($this->Video->save($this->data)) {
$this->Session->setFlash(__('The Video has been saved', true));
$this->redirect(array('action' => 'admin_index'));
} else {
$this->Session->setFlash(__('The Video could not be saved. Please, try again.', true));
}
}
$vcats = $this->Video->Vcat->find('list');
$this->set(compact('vcats'));
}
// это файл add.ctp
<div class="videos form">
<?php // echo $this->Form->create('Image');?>
<?php echo $form->create('Video'); ?>
<fieldset>
<legend><?php __('Add Video'); ?></legend>
<?php
echo $this->Form->input('vcat_id');
echo $this->Form->input('title');
$url= $this->Form->input('link');
echo $url
?>
</fieldset>
<?php echo $this->Form->end(__('Submit', true)); ?>
</div>
<div class="actions">
<h3><?php __('Actions'); ?></h3>
<ul>
<li><?php echo $this->Html->link(__('List Videos', true), array('action' => 'index')); ?></li>
<li><?php echo $this->Html->link(__('List Vcats', true), array('controller' => 'vcats', 'action' => 'index')); ?> </li>
<li><?php echo $this->Html->link(__('New Vcat', true), array('controller' => 'vcats', 'action' => 'add')); ?> </li>
</ul>
</div>
// мы получаем уникальный идентификатор видео из URL, сопоставляя шаблон, но куда я помещаю этот код для соответствия перед сохранением
preg_match("/v=([^&]+)/i", $url, $matches);
$id = $matches[1];