CakePhp habtm saving -.-Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 CakePhp habtm saving -.-

Сообщение Anonymous »

Я нахожусь в поисках и низкого уровня. Я не уверен, где я ошибся, потому что у меня нет ошибок. Фильмы - ID, заголовок, жанр и т. Д. < /p>

Жанры - ID, жанр < /p>

gnres_movies - movie_id , janre_id < /p>

Модель фильма: < /p>

public $hasAndBelongsToMany = array(
'Genre' => array(
'className' => 'Genre',
'joinTable' => 'genres_movies',
'foreignKey' => 'movie_id',
'associationForeignKey' => 'genre_id'
)
);
< /code>

Просмотр: < /p>

echo $this->Form->create('Movie', array('controller' => 'movies', 'action' => 'add', 'type' => 'file'));
echo $this->Form->input('title');
echo $this->Form->input('description', array('type' => 'textarea');
echo $this->Form->input('imdb_url');
echo $this->Form->year('release_year', 1900, date('Y'));
echo $this->Form->input('length', array('type' => 'number'));
echo $this->Form->input('genre', array('type'=>'select', 'multiple'=>'checkbox', 'options'=> $genres));
echo $this->Form->input('image', array('type' => 'file'));
echo $this->Form->button('Submit');
< /code>

MoviesController: < /p>

public function add()
{
/* for populating checkbox */
$this->set('genres', $this->Movie->Genre->find('list', array('fields' => array('Genre.id', 'Genre.genre'))));

if($this->request->is('post'))
{
$data_movie = array(
'title' => $this->request->data['Movie']['title'],
'description' => $this->request->data['Movie']['description'],
'imdb_url' => $this->request->data['Movie']['imdb_url'],
'release_year' => (int)$this->request->data['Movie']['release_year']['year'],
'length' => (int)$this->request->data['Movie']['length'],
'user_id' => (int)$this->Auth->user('id')
);

$data_genre = array('Genre' => array());
foreach($this->request->data['Movie']['genre'] as $genre)
array_push($data_genre['Genre'], (int)$genre);

$data = array('Movie' => $data_movie, 'Genre' => $data_genre);
$this->Movie->create();

if($this->Movie->save($data)
{
echo 'success';
}
}

}
< /code>

Итак, почему я потрудился настраивать данные вручную для сохранения в Moviecontroller, это потому, что учебники сообщают мне, что данные должны быть организованы, как сейчас (до этого Это выглядело немного по -другому .. Итак, я попробовал, и это то, что у меня есть сейчас (это выглядит нормально для меня)
http://s10.postimg.org/ikewszo95/untitled_1.jpg

Вы можете увидеть форму здесь http://marko-stimac.iz.hr/temp/movies/movies/add (хотя отправка не работает, я думаю, это из-за компонента автоза. Нерегистрированные пользователи) < /p>

hm Любая справка будет оценить :) < /p>

Редактировать - Обновленный контроллер < / p>

public function add()
{
$this->set('genres', $this->Movie->Genre->find('list', array('fields' => array('Genre.id', 'Genre.genre'))));

if($this->request->is('post'))
{
($this->Movie->saveAssociated($this->request->data))
{
$this->redirect('/');
$this->Session->setFlash('Success.');
}
}

}


Подробнее здесь: https://stackoverflow.com/questions/201 ... btm-saving
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»