0
私はサーバー側からdataTable
を実装しようとしていますが、3つの列をソートするのに成功しましたが、2つの列が外部キーであるソートに失敗しました。何が問題なのでしょうか?phpのサーバー側からデータテーブルを実装する際に、外部キーである列をソートする方法はありますか?
私はを使用しています。とsymfony2.8です。以下のコードでは、クエリを作成し、モデル別名 'Book'を使用してプロパティにアクセスしようとしています。
私のコード:
<?php
namespace AppBundle\Propel;
use AppBundle\Model\BookQuery;
use Symfony\Component\HttpFoundation\Request;
use UAM\Bundle\DatatablesBundle\Propel\AbstractEntityManager;
class BookManger extends AbstractEntityManager
{
/**
* @inheritdoc
*/
protected function getQuery(Request $request)
{
return BookQuery::create('Book');
}
/**
* @inheritdoc
*/
protected function getSearchColumns(Request $request)
{
return array();
}
/**
* @inheritdoc
*/
protected function getSortColumns(Request $request)
{
return array(
'Book.Id',
'Book.Title',
'Book.Isbn',
'Book.Publisher.Id', //this is not working
'Book.Author.Id' //this is also not working
);
}
/**
* @inheritdoc
*/
protected function getDefaultSortOrder(Request $request)
{
return array(
array('Book.Id', 'asc'),
array('Book.Title', 'asc')
);
}
のschema.xml
<?xml version="1.0" encoding="UTF-8"?>
<database name="default" defaultIdMethod="native" namespace="AppBundle\Model">
<table name="book" phpName="Book">
<column name="id" type="integer" required="true" primaryKey="true" autoIncrement="true"/>
<column name="title" type="varchar" size="255" required="true" />
<column name="isbn" type="varchar" size="24" required="true" phpName="ISBN"/>
<column name="publisher_id" type="integer" required="true"/>
<column name="author_id" type="integer" required="true"/>
<foreign-key foreignTable="publisher" phpName="Publisher" refPhpName="Book">
<reference local="publisher_id" foreign="id"/>
</foreign-key>
<foreign-key foreignTable="author">
<reference local="author_id" foreign="id"/>
</foreign-key>
</table>
<table name="author" phpName="Author">
<column name="id" type="integer" required="true" primaryKey="true" autoIncrement="true"/>
<column name="first_name" type="varchar" size="128" required="true"/>
<column name="last_name" type="varchar" size="128" required="true"/>
</table>
<table name="publisher" phpName="Publisher">
<column name="id" type="integer" required="true" primaryKey="true" autoIncrement="true" />
<column name="name" type="varchar" size="128" required="true" />
</table>
うん、それは働いています。ご協力いただきありがとうございます。 – sandy