Php Laravel 5.2路由

Php Laravel 5.2路由,php,ajax,laravel,controller,routing,Php,Ajax,Laravel,Controller,Routing,我对Laravel 5.2有一个奇怪的问题。 我已经更新别人的项目有一段时间了,现在大多数事情都正常工作了,但是,我有一个路线问题。 我使用PHP内置的error_log();查看实际执行的代码 在我的页面上,我有一个上传图像的按钮,一旦选择了一个图像,它应该通过Ajax调用上传: resources/views/assignments/create.blade.php … <script> … var $file = $("#file"); /*$file.be

我对Laravel 5.2有一个奇怪的问题。 我已经更新别人的项目有一段时间了,现在大多数事情都正常工作了,但是,我有一个路线问题。 我使用PHP内置的error_log();查看实际执行的代码

在我的页面上,我有一个上传图像的按钮,一旦选择了一个图像,它应该通过Ajax调用上传:

resources/views/assignments/create.blade.php


…
<script>
…
var $file = $("#file");
        /*$file.before('<button class="clickFile btn btn-success" data-id="#file" type="button">
        {{Lang::get($lang_short_name.'.selectImage')}}</button>');
         $('.clickFile').click(function(){
         $($(this).attr('data-id')).click();
         });*/
        $file.change(function (e) {
            e.preventDefault();
            var myFormData = new FormData();
            myFormData.append('file', $(this)[0].files[0]);
            console.log('views/assignments/create.blade.php line 717: trying to upload in background');
            $.ajax({
                url        : "{{url('assignment/uploadImage')}}",
                type       : "POST",
                data       : myFormData,
                contentType: false,
                cache      : false,
                processData: false,
                success    : function (data) {
                    var obj = jQuery.parseJSON(data);
                    initCropper(obj.url);
                }
            });
            $(this).val('');
        });
…
</script>
  • 请注意,第一行是我在ajax调用中编写的console.log
在路由器中,我进行了以下测试,测试成功:

app/Http/routes.php

…
Route::group(['middleware' => 'auth'], function () {
…
Route::post('assignment/uploadImage', error_log('test'));
…
}
然而,当我试图实际指向我的控制器时,什么也没有发生。以下是我用来重定向到控制器的代码:

app/Http/routes.php

…
Route::group(['middleware' => 'auth'], function () {
…
Route::post('assignment/uploadImage', ['uses' => 'AssignmentController@postImage']);
…
}
现在,这个调用在一个路由组内,使用身份验证中间件,但是由于上面的测试代码起作用,我假设这不是问题,再次,如果我错了,请纠正我,我将发布整个路由器

在我的控制器中,我有以下代码

app/Http/Controllers/AssignmentController.php

<?php namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use App\Assignment;
use App\AssignmentFork;
use App\AssignmentView;
use App\Curriculum;
use App\Grade;
use App\Http\Requests;
use App\Langs;
use App\RoboticSolution;
use App\User;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Input;
use Illuminate\Support\Facades\Lang;
use Illuminate\Support\Facades\Session;
use Illuminate\Support\Facades\Validator;


class AssignmentController extends Controller
{

/**
 * Display a listing of the resource.
 *
 * @return Response
 */
public function index()
{

    error_log('assignmentController index called');

    $assignments = Assignment::with(['user.profile'])->orderBy('id', 'desc')->paginate(20);

    return view('assignments.index')
        ->with('assignments', $assignments)
        ->with('mySaves', Auth::user()->savedAssignments);
}

public function create(){…}
public function store(){…}
public function show($id){…}
public function edit($id){…}
public function update($id, $data){…}
public function destroy($id){…}

public function postImage(){

error_log('attempted image upload......................');
    if (Input::hasFile('file')) {
        if (substr(Input::file('file')->getMimeType(), 0, 5) == 'image') {
            // this is an image
            $foto_name = str_random(10) . '_' . time() . '.' . Input::file('file')->getClientOriginalExtension();
            Input::file('file')->move(public_path() . "/pictures/", 'full_' . $foto_name);

            return json_encode(['name' => $foto_name, 'url' => asset("/pictures/" . 'full_' . $foto_name)]);
        }
    }

}


public function myDrafts(){…}
public function myPublished(){…}
public function getInfo(){…}
app/Http/Controllers/AssignmentController.php

你能给我们看一下AJAX调用的日志吗console@Vuldo我把它放在ajax调用下面的原始帖子中,您是否在html表单中设置了
enctype=“multipart/form data”
?为了理解这一点:您在服务器错误日志中没有看到任何条目?@SfAnki-我没有,但我现在在输入字段中设置了它;这不会改变任何事情。
app/Http/Controllers/AssignmentController.php

<?php namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use App\Assignment;
use App\AssignmentFork;
use App\AssignmentView;
use App\Curriculum;
use App\Grade;
use App\Http\Requests;
use App\Langs;
use App\RoboticSolution;
use App\User;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Input;
use Illuminate\Support\Facades\Lang;
use Illuminate\Support\Facades\Session;
use Illuminate\Support\Facades\Validator;


class AssignmentController extends Controller
{

/**
 * Display a listing of the resource.
 *
 * @return Response
 */
public function index()
{

    error_log('assignmentController index called');

    $assignments = Assignment::with(['user.profile'])->orderBy('id', 'desc')->paginate(20);

    return view('assignments.index')
        ->with('assignments', $assignments)
        ->with('mySaves', Auth::user()->savedAssignments);
}

public function create(){…}
public function store(){…}
public function show($id){…}
public function edit($id){…}
public function update($id, $data){…}
public function destroy($id){…}

public function postImage(){

error_log('attempted image upload......................');
    if (Input::hasFile('file')) {
        if (substr(Input::file('file')->getMimeType(), 0, 5) == 'image') {
            // this is an image
            $foto_name = str_random(10) . '_' . time() . '.' . Input::file('file')->getClientOriginalExtension();
            Input::file('file')->move(public_path() . "/pictures/", 'full_' . $foto_name);

            return json_encode(['name' => $foto_name, 'url' => asset("/pictures/" . 'full_' . $foto_name)]);
        }
    }

}


public function myDrafts(){…}
public function myPublished(){…}
public function getInfo(){…}