Как я могу создать кнопки с Laravel, используя foreach? - PullRequest
0 голосов
/ 02 января 2019

Не могли бы вы мне помочь, я создаю ботмена для телеграммы и информацию, которую я получаю из базы данных.Что мне нужно, чтобы иметь возможность создавать кнопки динамически с помощью foreach или расположения, я должен уточнить, что это не веб, я не использую для создания кнопок, я использую:

public function create ()
      {
      $ question = Question :: create ('Choose the headband of your interest:')
          -> fallback ('Choose an option, and it's time for the next question')
          -> callbackId ('Come on!')
          -> addButtons ([
              Button :: create ('Aastra') -> value ('a'),
          ]);

          return $ this-> ask ($ question, function (Answer $ answer) {
              if ($ answer-> isInteractiveMessageReply ()) {
                 } else {
                      $ this-> say (Inspiring :: quote ());
                        $ this-> askForDatabase ();
                  }
              }
          });
        }

В этой частикода, где я хочу поместить foreach или расположение, это в папке Conversations.php, и я называю его в route \ botman.php, чтобы мой бот мог ответить в телеграмме API.

Если вы не понимаете, что я хочу сделать, вы можете сказать мне, какая часть не понята?так как я не умею объяснять.

1 Ответ

0 голосов
/ 02 января 2019

Я думаю, что то, что вы хотите сделать, довольно просто достичь. Поскольку вы получаете содержимое ваших кнопок из базы данных, я предполагаю, что вы имеете дело с объектами. Поэтому я бы написал это так:

public function create ()
  {
  $objects = Data::all();
  $question = Question::create ('Choose the headband of your interest:')
      -> fallback ('Choose an option, and it's time for the next question')
      -> callbackId ('Come on!');
  foreach($objects as $object){
      $question->addButtons([
          Button::create($object->name)->value($object->value),
      ]);
  }

      return $this->ask($question, function (Answer $answer) {
          if ($answer->isInteractiveMessageReply()) {
             } else {
                  $this->say(Inspiring::quote());
                    $ this->askForDatabase();
              }
          }
      });
    }

С этим, я думаю, у вас должно получиться нормально.

...