Как занести в таблицу id страницы

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО
#1 2 июня 2016 в 12:39
Друзья я хочу занести в таблицу tournament_id ид страницы то есть:

Вот ссылка на турнир /tournament/event/5 (5 это ид страницы)

а ссылка когда добавляешь на странице /tournament/event/5 переходит на /tournament/add
и теперь мне нужно добавить id 5 в базу, может как то можно сделать это, на данный момент он передает только id_user, который добавил данные
если было бы так /tournament/event/5/add то думаю что то можно было придумать.

Вот файлы:

add.php

  1. <?php
  2.  
  3. class actionTournamentAdd extends cmsAction {
  4.  
  5. public function run(){
  6.  
  7. $errors = false;
  8.  
  9. $form = $this->getForm('team');
  10.  
  11. $is_submitted = $this->request->has('submit');
  12.  
  13. $team = $form->parse($this->request, $is_submitted);
  14.  
  15. $user = cmsUser::getInstance();
  16.  
  17. if ($is_submitted){
  18.  
  19. $errors = $form->validate($this, $team);
  20. $errors = $errors && !cmsUser::isAllowed('streetball', 'add');
  21.  
  22. if (!$errors){
  23. $team['user_id'] = $user->id;
  24. $team_id = $this->model->addTeam($team);
  25. $this->redirectToAction('team', array($team_id));
  26. }
  27.  
  28. if ($errors){
  29. cmsUser::addSessionMessage(LANG_FORM_ERRORS, 'error');
  30. }
  31. }
  32.  
  33. $template = cmsTemplate::getInstance();
  34.  
  35. $template->render('form_team', array(
  36. 'do' => 'add',
  37. 'form' => $form,
  38. 'errors' => $errors,
  39. 'team' => $team
  40. ));
  41.  
  42. }
  43.  
  44. }
Вот сам файл


  1.  
  2. <?php
  3.  
  4. class actionTournamentEvent extends cmsAction {
  5.  
  6. public function run($id = false){
  7.  
  8. if (!$id) { cmsCore::error404(); }
  9.  
  10. $tournament = $this->model->getTournament($id);
  11.  
  12. if (!$tournament ) { cmsCore::error404(); }
  13.  
  14. $teams = $this->model->filterEqual('tournament_id', $id)->getTeams();
  15.  
  16. $template = cmsTemplate::getInstance();
  17.  
  18. $template->render('event', array(
  19. 'tournament' => $tournament,
  20. 'teams' => $teams,
  21. 'fields' => $fields
  22. ));
  23.  
  24. }
  25.  
  26. }
  27.  

Вот model.php

  1.  
  2. <?php
  3.  
  4. class modelTournament extends cmsModel {
  5. public function addTeam($team){
  6.  
  7. return $this->insert('streetball', $team);}
  8.  
  9.  
  10. public function updateTeam($id, $team){
  11. return $this->update('streetball', $id, $team);
  12. }
  13. public function deleteTeam($id){
  14. $config = cmsConfig::getInstance();
  15. $team = $this->getTeam($id);
  16. $logos = self::yamlToArray($team['logo']);
  17. if (is_array($logos)){
  18. foreach($logos as $path){
  19. unlink( $config->upload_path . $path);
  20. }
  21. }
  22. return $this->delete('streetball', $id);
  23. }
  24.  
  25. public function getTeam($id){
  26. return $this->getItemById('streetball', $id);
  27. }
  28. public function getTeams(){
  29. return $this->get('streetball', 'tournaments');
  30. }
  31. public function getTeamsCount(){
  32. return $this->getCount('streetball');
  33.  
  34. }
  35.  
  36.  
  37. public function addStreetballteam($streetball_team){
  38. return $this->insert('3x3_teams', $streetball_teams);
  39. }
  40. public function getStreetballteam($id){
  41. return $this->getItemById('3x3_teams', $id);
  42. }
  43. public function getStreetballteams(){
  44. return $this->get('3x3_teams');
  45. }
  46. public function getStreetballteamsCount(){
  47. return $this->getCount('3x3_teams');
  48. }
  49.  
  50.  
  51.  
  52. public function addTournament($tournament){
  53. return $this->insert('tournaments', $tournaments);
  54. }
  55. public function getTournament($id){
  56. return $this->getItemById('tournaments', $id);
  57. }
  58. public function getTournaments(){
  59. return $this->get('tournaments');
  60. }
  61. public function getTournamentsCount(){
  62. return $this->getCount('tournaments');
  63. }
  64.  
  65. }
  66.  
  67.  
Как вы видите главная страница tournament потом event Заранее спасибо всем
#2 2 июня 2016 в 13:49
  1. $team_id = $this->model->addTeam($team);
$team_id вернет только что добавленный ID
Например: было 4 записей, вы добавили еще один, тогда $team_id вернет 5
#3 2 июня 2016 в 14:04


  1. $team_id = $this->model->addTeam($team);
$team_id вернет только что добавленный ID
Например: было 4 записей, вы добавили еще один, тогда $team_id вернет 5

Evanescence

А если пользователь зайдет на страницу 3 и там введет данные тогда тогда $team_id вернет 6? а мне надо 3 ведь так?
#4 2 июня 2016 в 14:08
Я это делаю потому что мне нужно что бы те люди которые ввели данные на странице 5 или 3 тоже и выдавало, зашел на страницу 2 записал что-то и там эти данные остались а не по всем страницам. Фильтр я уже сделал все работает
  1. $teams = $this->model->filterEqual('tournament_id', $id)->getTeams();
Когда сам ставлю в tournament_id например 5 то эти данные показывают только на 5 странице а не по всем, это ручная запись, а мне надо что бы автоматический записывалось… То есть мне надо как то записать id страницы.
#6 2 июня 2016 в 14:16
Сделайте ссылку вида /tournament/add/5 и в классе добавьте этот идентификатор
  1. class actionTournamentAdd extends cmsAction {
  2.  
  3. public function run($tournament_id = false){
  4. ....
#7 2 июня 2016 в 14:20


Сделайте ссылку вида /tournament/add/5 и в классе добавьте этот идентификатор

  1. class actionTournamentAdd extends cmsAction {
  2.  
  3. public function run($tournament_id = false){
  4. ....

Loadырь

А как мне это сделать если в tournamente данные турниров, evente сама ветка, а в add.php данные которые надо ввести.
— То есть у меня в evente список турниров, я ведь не смогу это поставить в аdd.php тогда будет 2 в 1, там будет и список и форма
#8 2 июня 2016 в 14:23


Сделайте ссылку вида /tournament/add/5 и в классе добавьте этот идентификатор

  1. class actionTournamentAdd extends cmsAction {
  2.  
  3. public function run($tournament_id = false){
  4. ....

Loadырь

#10 2 июня 2016 в 15:18


youtu.be/ivnQPvQb0f0?t=2483

Loadырь

Дело в том что я чуть не понял там ((

Так должно быть ?


  1. <?php
  2.  
  3. class actionTournamentEvent extends cmsAction {
  4.  
  5. public function run($id = false, $tournament_id = false){
  6.  
  7. if (!$id) { cmsCore::error404(); }
  8.  
  9. $tournament = $this->model->getTournament($id, $tournament_id);
  10.  
  11. if (!$tournament ) { cmsCore::error404(); }
  12.  
  13. $teams = $this->model->filterEqual('tournament_id', $id)->getTeams();
  14.  
  15. $template = cmsTemplate::getInstance();
  16.  
  17. $template->render('event', array(
  18. 'tournament' => $tournament,
  19. 'teams' => $teams,
  20. 'fields' => $fields
  21. ));
  22.  
  23. }
  24.  
  25. }
Но у меня ничего не передает (
#11 2 июня 2016 в 16:00

А как мне это сделать

Нико
а как вы сделали ссылку LANG_PHOTOBATTLE_ADD.

Но у меня ничего не передает (

Нико
А куда вы передаёте?
Вам надо сюда передавать
  1. class actionTournamentAdd extends cmsAction {
  2.  
  3. public function run($tournament_id = false){
Если /tournament/add занято добавлением турнира, то создайте другой экшн на добавление группы в турнир типа /tournament/add_items.
#12 2 июня 2016 в 16:17


А как мне это сделать

Нико
а как вы сделали ссылку LANG_PHOTOBATTLE_ADD.

Но у меня ничего не передает (

Нико
А куда вы передаёте?
Вам надо сюда передавать
  1. class actionTournamentAdd extends cmsAction {
  2.  
  3. public function run($tournament_id = false){
Если /tournament/add занято добавлением турнира, то создайте другой экшн на добавление группы в турнир типа /tournament/add_items.

Loadырь


Вот смотрите все точно напишу у меня папка компонента:

— tournament (папка)
— — actions (папка)
— — — index.php — тут турниры которые я сам ввожу что бы люди заходили и создавали команду
— — — event.php — этот файл служит для ветки турниров
— — — add.php — тут добавляем данные
— — — team.php — тут вывод данных о пользователей
— — forms — тут форма
— — frontend.php
— — model.php- тут модели
#13 2 июня 2016 в 16:24
А ещё точнее можете расписать вот тут

— — — add.php — тут добавляем данные

Нико
добавляете данные для чего? Или к чему? к event.php или к team.php?
#14 2 июня 2016 в 16:28


А ещё точнее можете расписать вот тут

— — — add.php — тут добавляем данные

Нико
добавляете данные для чего? Или к чему? к event.php или к team.php?

Loadырь

В team.php выводятся данные о пользователи рост и вес фотка и.тд
В event.php выводятся данные название команды и ссылка нажать на команду, когда нажимаешь на команду перекидывает на team.php вот я открыл сайт www.3x3azerbaijan.com/tournament
#15 2 июня 2016 в 16:37
Поставим вопрос по другому. У вас тут tournament/add что добавляется игрок в команду или команда в турнир или турнир в список турниров?
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.