Вставить данные в базу данных изнутри метода контроллера - PullRequest
1 голос
/ 02 ноября 2019

Я новичок в программировании, и я только учусь. Я использую Laravel и Twilio, чтобы сделать приложение для оценки на основе SMS. На этом этапе мое приложение отправит вопрос получателю, и получатель сможет ответить. Эта часть функциональна. Однако мне нужно иметь возможность хранить ответ получателя в своей базе данных. Для меня важно отличать ответы «Да» от ответов «Нет». Я не уверен, как вставить эти данные в базу данных в этой ситуации.

Я пытался использовать оператор 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 внутренних ошибок сервера, когда я пытаюсь это сделать. У меня такое чувство, что моя проблема с подключением к базе данных.

...