0

Silex を使用して RESTful アーキテクチャを作成しようとしています。最初に実装したいのは、食事を節約することです。「/食事」を投稿しました。デバッグの目的で、投稿ではなくリクエストを受け取ることを示しています。このコードは期待どおりに動作しません。executeUpdate 命令を削除すると、すべて正常に動作します。executeUpdate 命令を追加すると、Web ページは空白のページを返します。

<?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();
4

1 に答える 1

1

プロバイダーに渡す配列ではdb.optionsなく、名前を付ける必要があります。db

ここを参照してください:

$app->register(new Silex\Provider\DoctrineServiceProvider(), array(
    'db.options' => array(
        'driver' => 'pdo_mysql',
        'host' => 'localhost',
        'dbname' => 'database',
        'user' => 'user',
        'password' => 'password',
        'charset' => 'utf8',
    ),
));
于 2013-11-14T08:30:46.647 に答える