Это веб-приложение, которое работает, когда пользователь ищет элемент для добавления в свой список, а в результатах поиска отображается элемент, который ранее был добавлен в его список.
Однако, если результаты поиска находятэлемент, который ранее не был добавлен в список пользователя, тогда пользователь должен иметь возможность добавить этот новый элемент в свой список.
Вот первая функция, которая работает для добавления элемента, который ранее был на пользователясписок;(обратите внимание на строку if ($ user_item_id == 'null' ... "... это должна вызывать вторую функцию с именем" addToUserItems ")
function addItem() {
$user_item_id = $this->uri->segment( 3 );
$master_item_id = $this->uri->segment( 4 );
$store = $this->uri->segment( 5, '' );
$user_id = $this->main_model->getMasterUser( $this->user_id );
if ( $user_item_id == 'null' ) $user_item_id = $this->main_model->addToUserItems( $master_item_id, $user_id );
$quantity = $this->main_model->addToShoppingList( $user_item_id, $store, $user_id );
$message = ( $quantity == '1' ) ? 'Added to list.' : 'On shopping list ' . $quantity . ' times.';
$message .= ' <span class="undo_button" params="unadd/' . $user_item_id . '">Undo?</span>';
$return = array(
'message' => $message,
'user_item_id' => $user_item_id,
);
echo json_encode( $return );
}
Вот вторая функция, которая должна быть установлена"user_item_id", но, по-видимому, нет;
function addToUserItems( $master_item_id, $user_id ) {
$query = $this->db->query( "
INSERT INTO user_item ( master_item_id, user_id, custom_category, custom_name, custom_store, expires_after, on_hand )
SELECT id, " . $user_id . ", original_category, original_name, '', default_expiration, 0
FROM master_item
WHERE id = '" . $master_item_id . "'
;" );
return $this->db->insert_id();
}
Есть идеи, почему мы видим, что "user_item_id" не определен? Думаю, после нескольких часов предположений тестирования, что вторая функция каким-то образом не устанавливает значение для $user_item_id.