2015-08-07 3 views
1

Я пытаюсь Слим рамки в качестве основы для REST API и бегите в следующую проблему, когда я пытаюсь получить доступ к нему:Отсутствует Замыкание в Слим

Missing argument 2 for {closure}() 

Я гугле это и ни одно из предложений казалось, применялся. Это полное применение:

require("vendor/autoload.php"); 
use Slim\Slim as Slim; 
\Slim\Slim::registerAutoloader(); 
include("validate.php"); 

$app= new Slim(); 
// 
//  Route: GET /test/ID 
// 
$app->get("/test/:id",function($request,$response,$id) { <--- ERROR LINE 
       $status=accessAllowed("id",$request,$response); 
       log_info("Status: $status\n"); 
     }); 
$app->run(); 

Я только учусь Тонкий и я предполагаю, что это просто проблема новичка. Любые рекомендации будут оценены.

Я использую версию 3 из Slim (новейшая версия).

ответ

1

Вы, безусловно, не используя тонкий 3, потому что

  1. Тонкий 3 больше не имеет registerAutoloader(); функции и
  2. Имя класса изменен с Слим() в App(), и
  3. Правильный способ, чтобы захватить параметр в Слим 3, {ID}, нет: идентификатор

Что вам нужно является правильной сигнатурой обратного вызова.

$app->get("/test/:id",function($id) use ($app) { <--- ERROR LINE 
    $status=accessAllowed("id",$app->request,$app->response); 
    print "Status: $status\n"; 
}); 
+0

Вы верны. Я изначально загрузил и установил файл tar.gz 3.0, затем слепо следил за инструкциями по установке в какой-то момент и перезаписал с помощью 2.6. Это объясняет разрыв с документами, которые я использовал. Еще одна проблема: интерфейс «Interop \\ Container \\ ContainerInterface» (извините, я скопировал и вставил неправильную ошибку) – mlewis54

+0

PS: Я использовал композитор для обновления с использованием файла Beta 3.0 composer.json. Когда я пытаюсь использовать приложение, я получаю ошибку в своем предыдущем комментарии. – mlewis54

+0

да, похоже, у вас есть Slim 2 и Slim 3 в вашем проекте ... вы должны попробовать начать с нового проекта. – geggleto

Смежные вопросы