您能帮我吗,我正在为电报和从数据库中获取的信息创建一个僵尸程序。我需要的是能够使用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电报中进行回答。
如果您不明白我想做什么,可以告诉我哪一部分不被理解吗?因为我不擅长解释。
答案 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();
}
}
});
}
有了这个,我相信你应该可以正常工作。