gpt4 book ai didi

php - 如何从 Controller 获取记录到 Ajax laravel 5.2

转载 作者:可可西里 更新时间:2023-11-01 08:25:54 24 4
gpt4 key购买 nike

问候和尊重我希望当我在数据库表中记录要更新的记录时,但不幸的是我没有做任何无法获取 ID 并注入(inject) AJAX 和 AJAX 的事情,我想要 Controller 和数量之间的关系我从数据库和表中读取。

我的 Controller :

    public function index()
{
$category = Category::all();
return view('admin.category', compact('category'));
}
public function indexAjax(messageRequest $request){
$id=$request->id;
$category=Category::where('id',$id)->first();
$data=array('data'=>$category);
return $data;
}
public function create(messageRequest $request)
{
try {
Category::create($request->all());
return response()->json(array('sms'=>'save'));
}catch (Exception $e){
return response()->json(array('err'=>'error'));
}
}

我的路线:

Route::group(['middleware' => 'web'], function () {
Route::auth();
Route::get('category',['uses'=>'categoryController@index']);
});
Route::group(['middleware' => 'web'], function () {
Route::auth();
Route::get('categoryAjax', ['as'=>'categoryAjax','uses'=>'categoryController@indexAjax']);
});

脚本:

            <script>
$('#submit').on('click', function (e) {
e.preventDefault();
var data = $('#create').serialize();
$.ajax({
type: 'post',
url: '{!! URL::route('category') !!}',
data: data,
success: function (data) {
alert(data.sms);
},
error: function () {
alert(data.err);
}
});
$.ajax({
type: 'GET',
url: '{!! URL::route('categoryAjax') !!}',
async: false,
dataType: 'json',
data: data,
success: function (data) {
alert(data.data);
}
});
});
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
</script>

我将 alert(data.data) 更改为 alert('hi) 但没有运行 :(改变了:

                    $.ajax({
type: 'GET',
url: '{!! URL::route('categoryAjax') !!}',
async: false,
dataType: 'json',
data: data,
success: function (data) {
alert('hi');
}
});

我的 Ajax 方法 POST:

                    $.ajax({
type: 'post',
url: '{!! URL::route('category') !!}',
data: data,
success: function (data) {
alert(data.sms);
},
error: function () {
alert(data.err);
}
});

我的 Controller POST 方法:

    public function create(messageRequest $request)
{
try {
Category::create($request->all());
return response()->json(array('sms'=>'save'));
}catch (Exception $e){
return response()->json(array('err'=>'error'));
}
}

我的路由 POST 方法:

Route::group(['middleware' => 'web'], function () {
Route::auth();
Route::post('category', ['as' => 'category', 'uses' => 'categoryController@create']);
});

最佳答案

在 Laravel 5.2 中,中间件有 web、api 和 auth。如果要使用ajax发送数据,就要使用带token的api中间件。你可以看到这个引用:

首先,给用户添加一个api_token:

您首先想到的是向您的用户表添加一个 api_token 列。如果您刚刚启动您的应用程序,您可能会修改 Laravel 附带的用户迁移以包含您的新列。

// add this to your users_table migration
$table->string('api_token', 60)->unique();

Controller :

public function upload()
{
return view('uploads.upload', ['api_token' => Auth::user()->api_token]);
}

查看:

<script>
$(function () {
'use strict';

var url = '/api/photos?api_token={{ $api_token }}';

// Initialize the jQuery File Upload widget:
$('#fileupload').fileupload({
// Uncomment the following to send cross-domain cookies:
// xhrFields: {withCredentials: true},
url: url
});
</script>

路线:

Route::group(['middleware' => ['auth:api']], function () {
Route::post('api/photos', 'FileController@storeApi');
});

关于php - 如何从 Controller 获取记录到 Ajax laravel 5.2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35815288/

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