我正在尝试实现我在 Laravel php 项目中找到的 YouTube 教程,该教程是 here
我在视频 here 下的链接中获得了本教程的基本代码 我将此代码重写为 jquery php 请求,如下所示:
$(document).ready(function(){
$("#getimages").click(function(){
var folder = 'c://xampp/htdocs/proofofconcept/savedImages/eventfolders/event1';
$.ajax({
url: 'getImages',
type: "get",
data: {
folder: folder,
token: $("#_token").val()
},
dataType: "json",
success: function(response){
var thumbnailbox = $("#thumbnailbox");
var pictureframe = $("#pictureframe");
var d = JSON.parse(response);
pictureframe.innerHTML = "<img src='" + d.img1.src + "'>";
thumbnailbox.innerHTML = "";
for (var o in d) {
if (d[o].src) {
thumbnailbox.innerHTML += '<div onclick="putinframe(\'' + d[o].src + '\')"><img src="' + d[o].src + '"></div>';
}
}
}
});
});
});
我的 html 看起来像这样:
<form>
<div id="thumbnailbox"></div>
<div id="pictureframe"></div>
<input type="hidden" name="_token" value="<?php echo csrf_token(); ?>">
<input type="button" id="getimages" name="getimages"/>
</form>
现在,当我按下按钮时,我收到 500 内部服务器错误(所以我猜该帖子必须正常工作),我不再收到之前收到的 csrf token 错误,因此问题也不应该存在,所以问题应该出在我试图从这里的某个地方获取的方法的后端代码中: 然而,在我添加“getImages”和“测试”函数之前,所有这些代码都在工作(测试函数获取页面,该函数有效,只是当我尝试对 getImages 执行获取请求时,它失败了)以及所有getImages 中没有的代码现在仍然有效。
<?php namespace App\Http\Controllers;
use Input;
use Log;
use Auth;
use DB;
use Redirect;
use DateTime;
use Response;
use URL;
use DateInterval;
use File;
use App\Http\Controllers\Controller;
class HomeController extends Controller {
/*
|--------------------------------------------------------------------------
| Home Controller
|--------------------------------------------------------------------------
|
| This controller renders your application's "dashboard" for users that
| are authenticated. Of course, you are free to change or remove the
| controller as you wish. It is just here to get your app started!
|
*/
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('auth');
}
/**
* Show the application dashboard to the user.
*
* @return Response
*/
public function index()
{
return view('home');
}
public function addArticle(){
return view('newArticle');
}
public function readArticle(){
return view('readArticle');
}
public function deleteArticle(){
$articleid = Input::get('id');
$article = DB::table('articles')->where('id',$articleid)->first();
unlink($article->article_path);
DB::table('articles')->where('id',$articleid)->delete();
return Response::json(URL::route('home'), 200);
}
public function saveArticle(){
$noerrors = true;
$errors = array();
$content = Input::get('content');
$summary = Input::get('summary');
$articleid = Input::get('id');
$filepath = Input::get('filepath');
if(!Input::has('content')){
$noerrors = false;
array_push($errors,array('msg'=>"You can't upload an empty article"));
}
if(!Input::has('summary')){
$noerrors = false;
array_push($errors,array('msg'=>"You can't upload an article without a summary"));
}
if($noerrors){
Log::info($summary . ' ' . $articleid);
File::put($filepath,$content);
DB::table('articles')->where('id',$articleid)->update(array(
'summary' => $summary
)
);
return Response::json(URL::route('home'), 200);
}else{
return Response::json($errors,500);
}
}
public function editArticle(){
return view('editArticle');
}
public function createArticle(){
$noerrors = true;
$errors = array();
$content = Input::get('content');
$summary = Input::get('summary');
$user_id = Input::get('id');
if(!Input::has('content')){
$noerrors = false;
array_push($errors,array('msg'=>"You can't upload an empty article"));
}
if(!Input::has('summary')){
$noerrors = false;
array_push($errors,array('msg'=>"You can't upload an article without a summary"));
}
$randname = str_random(42);
$filename = $randname . '.txt';
$filepath = '../../savedArticles/' . $filename;
if($noerrors){
File::put($filepath,$content);
DB::table('articles')->insert(array(
'poster_id' => $user_id,
'article_path' => $filepath,
'summary' => $summary
)
);
return Response::json(URL::route('home'), 200);
}else{
return Response::json($errors,500);
}
}
public function getImages(){
/*$folder = Input::get("folder");
$jsonData = '{';
$dir = $folder."/";
$dirHandle = opendir($dir);
$i = 0;
while ($file = readdir($dirHandle)) {
if(!is_dir($file) && strpos($file, '.jpg')){
$i++;
$src = "$dir$file";
$jsonData .= '"img'.$i.'":{ "num":"'.$i.'","src":"'.$src.'", "name":"'.$file.'" },';
}
}
closedir($dirHandle);
$jsonData = chop($jsonData, ",");
$jsonData .= '}';*/
$jsonData = 'test';
return $jsonData;
}
public function test(){
return view('mytest');
}
}
如果有人知道可能导致以下错误的原因或我如何解决这些错误,请告诉我。
我收到的错误在这里:
> [2015-06-09 12:16:45] local.ERROR: exception 'ReflectionException'
> with message 'Class App\Http\Controllers\ does not exist' in
> C:\xampp\htdocs\proofofconcept\laravel\vendor\laravel\framework\src\Illuminate\Container\Container.php:776
> Stack trace:
> #0 C:\xampp\htdocs\proofofconcept\laravel\vendor\laravel\framework\src\Illuminate\Container\Container.php(776):
> ReflectionClass->__construct('App\Http\Contro...')
> #1 C:\xampp\htdocs\proofofconcept\laravel\vendor\laravel\framework\src\Illuminate\Container\Container.php(656):
> Illuminate\Container\Container->build('App\Http\Contro...', Array)
> #2 C:\xampp\htdocs\proofofconcept\laravel\vendor\laravel\framework\src\Illuminate\Foundation\Application.php(644):
> Illuminate\Container\Container->make('App\Http\Contro...', Array)
> #3 C:\xampp\htdocs\proofofconcept\laravel\vendor\laravel\framework\src\Illuminate\Routing\ControllerDispatcher.php(83):
> Illuminate\Foundation\Application->make('App\Http\Contro...')
> #4 C:\xampp\htdocs\proofofconcept\laravel\vendor\laravel\framework\src\Illuminate\Routing\ControllerDispatcher.php(54):
> Illuminate\Routing\ControllerDispatcher->makeController('App\Http\Contro...')
> #5 C:\xampp\htdocs\proofofconcept\laravel\vendor\laravel\framework\src\Illuminate\Routing\Route.php(204):
> Illuminate\Routing\ControllerDispatcher->dispatch(Object(Illuminate\Routing\Route),
> Object(Illuminate\Http\Request), 'App\Http\Contro...',
> 'HomeController')
> #6 C:\xampp\htdocs\proofofconcept\laravel\vendor\laravel\framework\src\Illuminate\Routing\Route.php(134):
> Illuminate\Routing\Route->runWithCustomDispatcher(Object(Illuminate\Http\Request))
> #7 C:\xampp\htdocs\proofofconcept\laravel\vendor\laravel\framework\src\Illuminate\Routing\Router.php(701):
> Illuminate\Routing\Route->run(Object(Illuminate\Http\Request))
> #8 [internal function]: Illuminate\Routing\Router->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
> #9 C:\xampp\htdocs\proofofconcept\laravel\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(141):
> call_user_func(Object(Closure), Object(Illuminate\Http\Request))
> #10 [internal function]: Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
> #11 C:\xampp\htdocs\proofofconcept\laravel\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(101):
> call_user_func(Object(Closure), Object(Illuminate\Http\Request))
> #12 C:\xampp\htdocs\proofofconcept\laravel\vendor\laravel\framework\src\Illuminate\Routing\Router.php(703):
> Illuminate\Pipeline\Pipeline->then(Object(Closure))
> #13 C:\xampp\htdocs\proofofconcept\laravel\vendor\laravel\framework\src\Illuminate\Routing\Router.php(670):
> Illuminate\Routing\Router->runRouteWithinStack(Object(Illuminate\Routing\Route),
> Object(Illuminate\Http\Request))
> #14 C:\xampp\htdocs\proofofconcept\laravel\vendor\laravel\framework\src\Illuminate\Routing\Router.php(628):
> Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request))
> #15 C:\xampp\htdocs\proofofconcept\laravel\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php(214):
> Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request))
> #16 [internal function]: Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}(Object(Illuminate\Http\Request))
> #17 C:\xampp\htdocs\proofofconcept\laravel\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(141):
> call_user_func(Object(Closure), Object(Illuminate\Http\Request))
> #18 C:\xampp\htdocs\proofofconcept\laravel\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\VerifyCsrfToken.php(43):
> Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
> #19 C:\xampp\htdocs\proofofconcept\laravel\app\Http\Middleware\VerifyCsrfToken.php(17):
> Illuminate\Foundation\Http\Middleware\VerifyCsrfToken->handle(Object(Illuminate\Http\Request),
> Object(Closure))
> #20 C:\xampp\htdocs\proofofconcept\laravel\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(125):
> App\Http\Middleware\VerifyCsrfToken->handle(Object(Illuminate\Http\Request),
> Object(Closure))
> #21 C:\xampp\htdocs\proofofconcept\laravel\vendor\laravel\framework\src\Illuminate\View\Middleware\ShareErrorsFromSession.php(55):
> Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
> #22 C:\xampp\htdocs\proofofconcept\laravel\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(125):
> Illuminate\View\Middleware\ShareErrorsFromSession->handle(Object(Illuminate\Http\Request),
> Object(Closure))
> #23 C:\xampp\htdocs\proofofconcept\laravel\vendor\laravel\framework\src\Illuminate\Session\Middleware\StartSession.php(61):
> Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
> #24 C:\xampp\htdocs\proofofconcept\laravel\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(125):
> Illuminate\Session\Middleware\StartSession->handle(Object(Illuminate\Http\Request),
> Object(Closure))
> #25 C:\xampp\htdocs\proofofconcept\laravel\vendor\laravel\framework\src\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse.php(36):
> Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
> #26 C:\xampp\htdocs\proofofconcept\laravel\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(125):
> Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse->handle(Object(Illuminate\Http\Request),
> Object(Closure))
> #27 C:\xampp\htdocs\proofofconcept\laravel\vendor\laravel\framework\src\Illuminate\Cookie\Middleware\EncryptCookies.php(40):
> Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
> #28 C:\xampp\htdocs\proofofconcept\laravel\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(125):
> Illuminate\Cookie\Middleware\EncryptCookies->handle(Object(Illuminate\Http\Request),
> Object(Closure))
> #29 C:\xampp\htdocs\proofofconcept\laravel\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode.php(42):
> Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
> #30 C:\xampp\htdocs\proofofconcept\laravel\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(125):
> Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode->handle(Object(Illuminate\Http\Request),
> Object(Closure))
> #31 [internal function]: Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
> #32 C:\xampp\htdocs\proofofconcept\laravel\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(101):
> call_user_func(Object(Closure), Object(Illuminate\Http\Request))
> #33 C:\xampp\htdocs\proofofconcept\laravel\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php(115):
> Illuminate\Pipeline\Pipeline->then(Object(Closure))
> #34 C:\xampp\htdocs\proofofconcept\laravel\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php(84):
> Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter(Object(Illuminate\Http\Request))
> #35 C:\xampp\htdocs\proofofconcept\laravel\public\index.php(53): Illuminate\Foundation\Http\Kernel->handle(Object(Illuminate\Http\Request))
> #36 {main}
最佳答案
显然我遇到的问题是在我的路由中。 我有一条路线定义为:
Route::get('getImages','@HomeController@getImages');
但实际上应该是:
Route::get('getImages','HomeController@getImages');
关于javascript - Laravel 5 AJAX 重定向问题获取 'Class App\Http\Controllers\does not exist',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30732078/