Laravel 从控制器方法内部将数据插入数据库
我是编程新手,我只是在学习。我正在使用Laravel和Twilio制作一个基于短信的评估应用程序。此时,我的应用程序将向收件人发送一个问题,收件人可以回复。这部分是功能性的。但是,我需要能够在我的数据库中存储收件人的响应。对我来说,区分“是”和“否”是很重要的。我不确定在这种情况下如何将这些数据插入数据库 我尝试使用if语句来实现这一点。例如,如果答案是“是”,则将“是”数据上载到数据库。如果回答为否,则将“否”数据上载到数据库。我试图创建执行这种逻辑的代码。下面是我在回答“是”后插入数据的尝试Laravel 从控制器方法内部将数据插入数据库,laravel,twilio-php,Laravel,Twilio Php,我是编程新手,我只是在学习。我正在使用Laravel和Twilio制作一个基于短信的评估应用程序。此时,我的应用程序将向收件人发送一个问题,收件人可以回复。这部分是功能性的。但是,我需要能够在我的数据库中存储收件人的响应。对我来说,区分“是”和“否”是很重要的。我不确定在这种情况下如何将这些数据插入数据库 我尝试使用if语句来实现这一点。例如,如果答案是“是”,则将“是”数据上载到数据库。如果回答为否,则将“否”数据上载到数据库。我试图创建执行这种逻辑的代码。下面是我在回答“是”后插入数据的尝试
namespace App\Http\Controllers;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Http\Request;
use Twilio\Rest\Client;
use Twilio\Jwt\ClientToken;
use Twilio\Twiml;
use App\res_eval_datasets;
use Session;
use DB;
class AskFirstQuestionsController extends Controller
{
public function qOneResponse(Request $request) {
$responderNumber = $request->input('From');
session()->put('responderNumber', $responderNumber);
$responderAnswer = strtolower($request->input('Body'));
if (strpos($responderAnswer, 'yes') !== false) {
$attending_name = session::get('attending_name');
$resident_name = session::get('residentName');
$firstQuestion = session::get('first_question');
DB::table('res_eval_datasets')-
>insert(['attending'=>$attending_name,'resident_name'=>
$resident_name,'question_id' =>$firstQuestion, 'answer_yes'=>1]);
$smsResponse = "Thank You for teaching!";
} else if (strpos($responderAnswer, 'no') !== false) {
$smsResponse = "Ugh, ok...we will work on this";
} else if (strpos($responderAnswer, 'ids') !== false) {
$smsResponse = "Let's try a different question";
} else {
$smsResponse = "Please answer yes, no or dns.";
}
return response($this->respond($smsResponse))->header('Content-Type',
'application/xml');
}
public function respond($smsResponse) {
$response = new Twiml();
$response->message($smsResponse, ['to' => '+15303219327']);
//session()->flush();
session()->forget('firstQuestionSent');
return $response;
}
当我尝试此操作时,这会一直给我一个500内部服务器错误。我感觉我的问题在于数据库连接。看看Laravel的模型,这些模型将确保您几乎不必担心查询。使用雄辩的方法,这可以简单到:
smsrepose::create([“attenting”=>…])
来存储smsrepose。这也将允许您围绕响应表构建面向对象的模型。另一个提示是确保您的应用程序未处于生产模式,以便您可以检查完整的错误,而不仅仅是获得一个500错误的初始屏幕。你应该看看这样的东西,非常感谢。这似乎是可行的,但它揭示了一个不同的问题…我无法访问会话变量,这就是为什么它们没有加载到数据库中。我想不出怎么解决这个问题。我想是时候问一个新问题了。是的,我使用Laravel作为REST API,我对会话一无所知。看看Laravel的模型,这些模型将确保您几乎不必担心查询。使用雄辩的方法,这可以简单到:smsrepose::create([“attenting”=>…])
来存储smsrepose。这也将允许您围绕响应表构建面向对象的模型。另一个提示是确保您的应用程序未处于生产模式,以便您可以检查完整的错误,而不仅仅是获得一个500错误的初始屏幕。你应该看看这样的东西,非常感谢。这似乎是可行的,但它揭示了一个不同的问题…我无法访问会话变量,这就是为什么它们没有加载到数据库中。我想不出怎么解决这个问题。我想是时候问一个新问题了。是的,我使用Laravel作为RESTAPI,我对会话一无所知。