Laravel Controller在使用jQuery时无法创建视图

时间:2014-12-06 20:24:09

标签: jquery laravel-4

在一个简单的Laravel 4测试应用程序中,当用户点击“上传”时,jQuery将formdata发送到控制器

var formdata = new FormData(form);
    request.open('post', 'submit');
    request.send(formdata);

控制器接收文件并生成一组图像。

foreach(Input::file("image") as $image) {

        $imagename = $image->getClientOriginalname();
        $uploadflag = $image->move('public/uploads', $imagename);
        if($uploadflag){

            $uploadedImages[] = $imagename;
        }
    }
return Response::json(['success' => true, 'message' => 'images uploaded successfully', 'images' => $uploadedImages]);

现在我想在视图中显示图像(show.php),以便在控制器中显示:

return View::make('show')
                  ->with('uploadedImages', $uploadedImages);

show.php只包含一个循环:

@foreach($uploadedImages as $uploadedImage)

        <div>{{ HTML::image($uploadedImage) }}</div>

        @endforeach

但没有任何反应 - 视图没有显示。 Laravel日志文件中没有错误消息,Response :: json结果显示图像在数组中。 以下是我尝试过的路线:

Route::post('show', function()
{
    return View::make('show');
});

我试过

Route::get('show', function()
{
    return View::make('show');
});

我试过

Route::post('show', array(
    'as' => 'show',
    'uses' => 'ImageController@upload'
));

没有jQuery,控制器没有问题 - 返回View :: make - 但是现在jQuery处理上传它不起作用。我需要jQuery来允许用户最终选择要上传的文件。 欢迎任何和所有的帮助!

2 个答案:

答案 0 :(得分:0)

如果您的输出文件只是“show.php”它将无效,该文件必须具有扩展名.blade,如“show.blade.php”。

并且不要忘记将此文件添加到“路线”中。

答案 1 :(得分:0)

在视图文件之前使用字符串函数,如

return  (String) view('Company.allUserAjax',$data)

之后你的填充将回复