Javascript 在Laravel中使用Ajax将数据插入MySQL
我有一个JS变量,它在我的blade视图中存储JSON值,我想将它插入Laravel项目中的MySQL。但我不知道怎么把它写对。这是我在刀片视图中尝试的:Javascript 在Laravel中使用Ajax将数据插入MySQL,javascript,jquery,mysql,laravel,Javascript,Jquery,Mysql,Laravel,我有一个JS变量,它在我的blade视图中存储JSON值,我想将它插入Laravel项目中的MySQL。但我不知道怎么把它写对。这是我在刀片视图中尝试的: 保存到数据库 var formBuilder=$('#fb editor').formBuilder(); $(“#saveBtn”)。单击(函数(){ var mFormData=formBuilder.actions.getData();//我的JSON数据 $.ajax({ 键入:“POST”, url:“/saveToDataba
保存到数据库
var formBuilder=$('#fb editor').formBuilder();
$(“#saveBtn”)。单击(函数(){
var mFormData=formBuilder.actions.getData();//我的JSON数据
$.ajax({
键入:“POST”,
url:“/saveToDatabase”,
数据:{“mFormData”:mFormData}
}).done(函数(msg){
警报(“数据已保存!”);
});
});
首先,在.env文件中输入数据库详细信息
你需要使用两条路线。一个用于渲染刀片文件,另一个用于api请求
在routes/web.php上,定义您的路线
Route::get('/', function(){ return view('app');});
使用HTML代码在参考资料/视图/文件夹中创建app.blade.php
在routes/api.php上,如下定义您的路由
Route::post('saveToDatabase','HomeController@saveToDb')
接下来,需要在HomeController上创建saveToDb方法
打开App\Http\Controller\HomeController.php
创建一个新方法
public function saveToDb()
{
// Database Insertion Code goes here
}
Laravel为POST请求提供CSRF保护。因此,通过将异常添加到App\Http\Middleware\VerifyCSRFToken.php中,向该路由添加异常
protected $except = [
'api/*'
];
对于插入操作,我们可以在模型的帮助下完成
因此,首先在App\文件夹中创建Form.php
在其中,我们指定数据库的字段
<?php
use Illuminate\Database\Eloquent\Model;
class Form extends Model
{
protected $fillable = [
"key", "data"
];
protected $hidden = [];
}
现在我们可以更新之前编写的saveToDb函数
public function saveToDb()
{
// Request all the post data
$req = Request::all();
// From that post data store key and data part to form table
Form::create($req);
}
如果您在路线、控制器或型号方面有任何问题。请参阅Laravel官方文件:
这一条对于开始学习拉威尔也很有用 未正确选择路线。是“不查找用于执行某些操作”您在routes/api.php中定义了路由吗?我只在blade视图中编写代码,所以我想我可以在web.php中使用默认路由。我错了吗?你使用的是Laravel,那么你为什么要使用
mysqli\u connect
?这是我放在xampp htdocs文件夹中运行的2.php文件。我只是让你明白我在做什么。我想在Laravel.com中这样做,因为Laravel中的路由没有在web.php中定义。您是否在web.php中添加了路由?嗯,我应该在哪里编写插入查询?是的。您可以像这样使用$values=array('key'=>1,'data'=>Dayle'),而不是model;DB::table('form')->insert($value);但我的JSON值存储在blade视图中的JS变量中,该变量为var mFormData=formBuilder.actions.getData()//JSON数据返回。我如何在查询中使用它?当您写入return$数据时;在控制器方法中。它将返回json数据。是否要将数据库中的数据返回到json?可能您误解了我的问题。我编辑了我的帖子。我有一个JS变量,用于存储我的JSON值。现在我想将JSON值插入到我的数据库中。我不需要从数据库返回数据。我像你说的那样在.env文件中配置并创建了模型和控制器。接下来我该怎么办?非常感谢。对我想是因为web.php中没有这个url。但我只在blade视图中编写ajax,我没有任何控制器和函数,我不知道如何为此编写路由。请记住,在laravel中,post需要CSRF。
public function saveToDb()
{
// Request all the post data
$req = Request::all();
// From that post data store key and data part to form table
Form::create($req);
}