gpt4 book ai didi

php - Laravel 添加数据到 MySQL

转载 作者:行者123 更新时间:2023-11-29 07:09:10 25 4
gpt4 key购买 nike

项目基于 Laravel 5.3,我正在多个页面的 session 中收集数据,我想将其添加到 MySQL。问题是数据没有插入到MySQl中,只有created_at。数据是可变的,但不会保存在 MySQL 中。

型号:

class Post extends Model
{
public $vardas, $pavarde, $miestas, $amzius, $telefonas, $pastas, $q1, $q2, $q3, $q4;

protected $fillable = ['vardas', 'pavarde', 'miestas', 'amzius', 'telefonas', 'pastas', 'q1', 'q2', 'q3', 'q4'];

public function addToDb($vardas, $pavarde, $miestas, $amzius, $telefonas, $pastas, $q1, $q2, $q3, $q4)
{
$answer = new Post;

$answer->vardas = $vardas;
$answer->pavarde = $pavarde;
$answer->miestas = $miestas;
$answer->amzius = $amzius;
$answer->telefonas = $telefonas;
$answer->pastas = $pastas;
$answer->q1 = $q1;
$answer->q2 = $q2;
$answer->q3 = $q3;
$answer->q4 = $q4;
$answer->save();
}

}

数据库:

  Schema::create('answers', function (Blueprint $table) {
$table->increments('id');
$table->string('vardas');
$table->string('pavarde')->nullable();
$table->string('miestas')->nullable();
$table->string('amzius')->nullable();
$table->string('telefonas')->nullable();
$table->string('pastas')->nullable();
$table->string('q1')->nullable();
$table->string('q2')->nullable();
$table->string('q3')->nullable();
$table->string('q4')->nullable();
$table->timestamps();
});

和 Controller :

   public function getAciu () {
$vardas = Input::get('vardas');
$pavarde = Input::get('pavarde');
$miestas = Input::get('miestas');
$amzius = Input::get('amzius');
$telefonas = Input::get('telefonas');
$pastas = Input::get('pastas');
$q1 = Session::get('q1');
$q2 = Session::get('q2');
$q3 = Session::get('q3');
$q4 = Session::get('q4');
$answer = new Post;
$answer->addToDb($vardas, $pavarde, $miestas, $amzius, $telefonas, $pastas, $q1, $q2, $q3, $q4);

return view('aciu');
}

最佳答案

我建议您仅使用 Laravel 5.3 官方语法。

正如您提到的,您正在使用 Laravel 5.3。

请尝试以下代码。

要调试变量的值,请使用“dd($variable_name)”;

注意:确保您已将“addToDb”的访问修饰符更改为 protected,以便在不使用 int 的情况下在 Controller 上访问它。类对象,例如:$result = Post::addToDb($vardas, $pavarde, $miestas, $amzius, $telefonas, $pastas, $q1, $q2, $q3, $q4);。

型号:使用“use Illuminate\Database\Eloquent\Model;”在声明你的模型类之前

例如:

namespace App;

use Illuminate\Database\Eloquent\Model;

class Post extends Model
{

protected $fillable = ['vardas', 'pavarde', 'miestas', 'amzius', 'telefonas', 'pastas', 'q1', 'q2', 'q3', 'q4'];

protected function addToDb($vardas, $pavarde, $miestas, $amzius, $telefonas, $pastas, $q1, $q2, $q3, $q4)
{
//dd($vardas); uncomment to debug the value of $vardas

$answer = new Post();

$answer->vardas = $vardas;
$answer->pavarde = $pavarde;
$answer->miestas = $miestas;
$answer->amzius = $amzius;
$answer->telefonas = $telefonas;
$answer->pastas = $pastas;
$answer->q1 = $q1;
$answer->q2 = $q2;
$answer->q3 = $q3;
$answer->q4 = $q4;
return $answer->save();
}

}

Controller :

请在 Controller 类声明之前使用以下行,并使用 Post 模型命名空间修改“use App\Post;”。

例如:

namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Post; // Please specify namespace of your model here

修改 Controller 方法:

public function getAciu (Request $request) {
//dd($request->all()); //uncomment to debug complete request body
$vardas = $request -> input('vardas');
$pavarde = $request -> input('pavarde');
$miestas = $request -> input('miestas');
$amzius = $request -> input('amzius');
$telefonas = $request -> input('telefonas');
$pastas = $request -> input('pastas');
$q1 = $request -> session() - > get('q1');
$q2 = $request -> session() - > get('q2');
$q3 = $request -> session() - > ('q3');
$q4 = $request -> session() - > ('q4');
$result = Post::addToDb($vardas, $pavarde, $miestas, $amzius, $telefonas, $pastas, $q1, $q2, $q3, $q4);
return view('aciu');
}
  • 因为您使用的是 Laravel 5.3。

  • 在 laravel 5.3 中,使用 $request->input('field_name') 代替输入::get('字段名称');

  • session 也可以使用$request->session()->get('key_name');

请检查引用: https://laravel.com/docs/5.3/requests

希望上面的代码能够工作。

关于php - Laravel 添加数据到 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40483496/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com