我正在尝试使用Silex创建RESTful架构。我想要实现的第一件事就是节省一顿饭。我在邮寄路线“/饭”。出于调试目的,我向您显示请求而不是发布。此代码无法正常工作。删除executeUpdate指令,一切正常。添加executeUpdate指令,网页返回空白页。
<?php
require_once __DIR__ . '/../vendor/autoload.php';
use Silex\Application;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
$app = new Silex\Application();
$app['debug'] = true;
$app->register(
new Silex\Provider\DoctrineServiceProvider(),
array(
'db' => array(
'driver' => 'pdo_mysql',
'host' => 'localhost',
'dbname' => 'database',
'user' => 'user',
'password' => 'password',
'charset' => 'utf8',
),
)
);
$app->get(
'/meals',
function (Request $request) use ($app) {
$app['db']->executeUpdate(
'INSERT INTO meal_items (id, id_meal, food) VALUES (?, ?, ?)',
array(
null,
1,
'Onion'
)
);
return new Response(json_encode(
array(
'hello'
)
), 201);
}
);
$app->run();
答案 0 :(得分:1)
您必须在传递给提供程序的数组中将其命名为db.options
而不是db
。
请参阅here:
$app->register(new Silex\Provider\DoctrineServiceProvider(), array(
'db.options' => array(
'driver' => 'pdo_mysql',
'host' => 'localhost',
'dbname' => 'database',
'user' => 'user',
'password' => 'password',
'charset' => 'utf8',
),
));