首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从控制器获取记录到Ajax laravel 5.2

如何从控制器获取记录到Ajax laravel 5.2
EN

Stack Overflow用户
提问于 2016-03-05 14:27:30
回答 2查看 1.4K关注 0票数 3

在更新数据库表中的记录时,我希望得到问候和尊重,但不幸的是,我没有做任何无法获取ID并注入AJAX和AJAX的操作,我希望控制器与从数据库和表读取的数量之间的关系。

我的财务主任:

代码语言:javascript
运行
复制
    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'));
    }
}

我的路线:

代码语言:javascript
运行
复制
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']);
});

剧本:

代码语言:javascript
运行
复制
            <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),但未运行:(已更改:

代码语言:javascript
运行
复制
                    $.ajax({
                    type: 'GET',
                    url: '{!! URL::route('categoryAjax') !!}',
                    async: false,
                    dataType: 'json',
                    data: data,
                    success: function (data) {
                        alert('hi');
                    }
                });

我的Ajax方法帖子:

代码语言:javascript
运行
复制
                    $.ajax({
                    type: 'post',
                    url: '{!! URL::route('category') !!}',
                    data: data,
                    success: function (data) {
                        alert(data.sms);
                    },
                    error: function () {
                        alert(data.err);
                    }
                });

我的控制器POST方法:

代码语言:javascript
运行
复制
    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'));
    }
}

我的路线邮寄法:

代码语言:javascript
运行
复制
Route::group(['middleware' => 'web'], function () {
Route::auth();
Route::post('category', ['as' => 'category',  'uses' => 'categoryController@create']);
});
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-06 10:14:42

通过此代码,我的问题是Solved.But从脚本中删除$.get并使用POST方法运行。

代码语言:javascript
运行
复制
    public function create(messageRequest $request)
{
    try {
        $category = Category::create($request->all())->id;
        return response()->json(['id'=>$category]);
    }catch (Exception $e){
        return response()->json(array('err'=>'error'));
    }
}

通过此代码,在警报状态下返回记录ID。

票数 0
EN

Stack Overflow用户

发布于 2016-03-05 17:19:33

在Laravel5.2中,中间件有web、api和auth。如果您想使用ajax发送的数据,您将使用带有令牌的api中间件。您可以看到以下引用:

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

首先,您需要向用户表中添加一个api_token列。如果您刚刚开始您的应用程序,您很可能可以通过修改Laravel附带的用户迁移来包含您的新专栏。

代码语言:javascript
运行
复制
// add this to your users_table migration
$table->string('api_token', 60)->unique();

主计长:

代码语言:javascript
运行
复制
public function upload()
{
    return view('uploads.upload', ['api_token' => Auth::user()->api_token]);
}

查看:

代码语言:javascript
运行
复制
<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>

路由:

代码语言:javascript
运行
复制
Route::group(['middleware' => ['auth:api']], function () {
    Route::post('api/photos', 'FileController@storeApi');
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35815288

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档