如何使用foreach使用laravel创建按钮?

时间:2019-01-02 16:50:07

标签: laravel postgresql bots telegram-bot

您能帮我吗,我正在为电报和从数据库中获取的信息创建一个僵尸程序。我需要的是能够使用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文件夹中,我在routes \ botman.php中称呼它,以便我的机器人可以在api电报中进行回答。

如果您不明白我想做什么,可以告诉我哪一部分不被理解吗?因为我不擅长解释。

1 个答案:

答案 0 :(得分:0)

我认为您想要实现的目标非常简单。由于您是从数据库中获取按钮内容的,因此我假设您正在处理对象。因此,我将其编写如下:

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();
              }
          }
      });
    }

有了这个,我相信你应该可以正常工作。