Laravel 从控制器方法内部将数据插入数据库

Laravel 从控制器方法内部将数据插入数据库,laravel,twilio-php,Laravel,Twilio Php,我是编程新手,我只是在学习。我正在使用Laravel和Twilio制作一个基于短信的评估应用程序。此时,我的应用程序将向收件人发送一个问题,收件人可以回复。这部分是功能性的。但是,我需要能够在我的数据库中存储收件人的响应。对我来说,区分“是”和“否”是很重要的。我不确定在这种情况下如何将这些数据插入数据库 我尝试使用if语句来实现这一点。例如,如果答案是“是”,则将“是”数据上载到数据库。如果回答为否,则将“否”数据上载到数据库。我试图创建执行这种逻辑的代码。下面是我在回答“是”后插入数据的尝试

我是编程新手,我只是在学习。我正在使用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,我对会话一无所知。