示例#1
0
 *
 * return list of objects with the name of the table
 * Ex. [{name: 'articles'}, {name: 'projects'}]
 */
$app->get("/{$v}/tables/?", function () use($ZendDb, $acl, $app) {
    $tablesNames = TableSchema::getTablenames(false);
    $tables = array_map(function ($table) {
        return ['table_name' => $table];
    }, $tablesNames);
    JsonView::render($tables);
});
// GET and PUT table details
$app->map("/{$v}/tables/:table/?", function ($table) use($ZendDb, $acl, $params, $requestPayload, $app) {
    if ($app->request()->isDelete()) {
        $tableGateway = new TableGateway($acl, $table, $ZendDb);
        $success = $tableGateway->drop();
        $response = ['message' => __t('unable_to_remove_table_x', ['table_name' => $table]), 'success' => false];
        if ($success) {
            $response['success'] = true;
            $response['message'] = __t('table_x_was_removed');
        }
        return JsonView::render($response);
    }
    $TableGateway = new TableGateway($acl, 'directus_tables', $ZendDb, null, null, null, 'table_name');
    $ColumnsTableGateway = new TableGateway($acl, 'directus_columns', $ZendDb);
    /* PUT updates the table */
    if ($app->request()->isPut()) {
        $data = $requestPayload;
        $table_settings = ['table_name' => $data['table_name'], 'hidden' => (int) $data['hidden'], 'single' => (int) $data['single'], 'footer' => (int) $data['footer'], 'primary_column' => array_key_exists('primary_column', $data) ? $data['primary_column'] : ''];
        //@TODO: Possibly pretty this up so not doing direct inserts/updates
        $set = $TableGateway->select(['table_name' => $table])->toArray();