Я наткнулся на рамки Slim и играл с ней. Я столкнулся с проблемой 404. С приведенным ниже кодом: Я знаю, что это имеет какое-то отношение к URL-адресу, но я не совсем уверен, как решить эту проблему. Должен ли я определять URL-адрес для «профилей»?Slim Framework - 404 Страница не
также мои каталоги выглядеть следующим образом:
включают
dbhandler.php
config.php
- dbConnect.php
LIB
- Тонкий
v1
- .htaccess
- index.php
Проблема в этом коде: mysite.com//parentfolder/v1/profiles бросает 404
$app->post('/profiles', 'authenticate', function() use ($app) {
// check for required params
verifyRequiredParams(array('gender'));
$response = array();
$gender = $app->request->post('gender');
global $user_id;
$db = new DbHandler();
// creating new task
$profile_id = $db->createUserProfile($user_id, $gender);
if ($profile_id != NULL) {
$response["error"] = false;
$response["message"] = "Profile created successfully";
$response["profile_id"] = $profile_id;
echoRespnse(201, $response);
} else {
$response["error"] = true;
$response["message"] = "Failed to create profile. Please try again";
echoRespnse(200, $response);
}
});
.htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ %{ENV:BASE}index.php [QSA,L]
У меня также есть эта функция, которая работает просто отлично.
$app->post('/register', function() use ($app) {
// check for required params
verifyRequiredParams(array('name', 'email', 'password'));
$response = array();
// reading post params
$name = $app->request->post('name');
$email = $app->request->post('email');
$password = $app->request->post('password');
// validating email address
validateEmail($email);
$db = new DbHandler();
$res = $db->createUser($name, $email, $password);
if ($res == USER_CREATED_SUCCESSFULLY) {
$response["error"] = false;
$response["message"] = "You are successfully registered";
} else if ($res == USER_CREATE_FAILED) {
$response["error"] = true;
$response["message"] = "Oops! An error occurred while registereing";
} else if ($res == USER_ALREADY_EXISTED) {
$response["error"] = true;
$response["message"] = "Sorry, this email already existed";
}
// echo json response
echoRespnse(201, $response);
});
Не могли бы вы использовать [этот .htaccess] (http://stackoverflow.com/a/28409423/1992780) и проверить, работает ли он? –
Посмотрите на '$ app-> post ('/ profiles', 'authenticate', ...'. Я знаю, что 'authenticate' является именем функции для вашего промежуточного программного обеспечения. Итак, можете ли вы также опубликовать свой' authenticate' код? – Alfa