在我们的数据库表中,我们是列refID并且date是复合主键,标识符的一个字段被映射为datetime:
class corpWalletJournal
{
/**
* @ORM\Column(name="refID", type="bigint", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="NONE")
*/
private $refID;
/**
* @ORM\Column(name="date", type="datetime", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="NONE")
*/
private $date;
public function setRefID($refID)
{
$this->refID = $refID;
}
public function setDate(\DateTime $date)
{
$this->date = $date;
}
}
Run Code Online (Sandbox Code Playgroud)
如果我们在实体中将它们描述为@ORM\Id,则此代码将返回异常"无法将datetime转换为字符串"...
$filter = array(
'date' => $this->stringToDate($loopData['date']),
'refID' => $loopData['refID']
));
$oCorpWJ = $this->em->getRepository('EveDataBundle:corpWalletJournal')->findOneBy($filter);
// ...
$oCorpWJ->setDate($this->stringToDate($loopData['date']));
// ...
Run Code Online (Sandbox Code Playgroud)
如果我们描述corpWalletJournal#date为一个简单的列,代码工作正常.为什么?
我们该如何处理它?我们需要在主键中同时使用date和refID.
添加: …
要保存对db的输入,我们可以使用:
$em->persist($entity);
$em->flush();
Run Code Online (Sandbox Code Playgroud)
但是我们怎样才能更新现有的条目而不使用$this->getEntityManager()->createQuery()?
我们可以吗?
我正在搜索$em->update()db中的某些现有条目.
所以当我开始使用2.3版本的symfony Assert Entity时,我有未知的错误
class FormRegister
{
/**
* @Assert\Regex
* (
* pattern="/^[a-zA-Z0-9]{1,}$/i",
* message="You use illegal character(s). Must be a-z, A-Z and 0-9 symbols."
* )
* @Assert\Length
* (
* min="4",
* minMessage="User name must be more then 3 characters.",
* max="15",
* maxMessage="User name must be less then 16 characters."
* )
*/
private $username;
public function setUsername($username)
{
$this->username = $username;
return $this;
}
public function getUserName()
{
return $this->username;
}
/**
* @Assert\NotBlank
* ( …Run Code Online (Sandbox Code Playgroud) 是否有任何解决方案可以从模块配置中添加路由?
例.我们有描述的主要配置
'components' => [
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => require(FILE_PATH_CONFIG_ENV . '_routes.php') // return array
],
]
Run Code Online (Sandbox Code Playgroud)
在每个模块中,我们使用私有参数加载自定义配置文件
public function loadConfig($sFileName = 'main', $sFolderName = 'config')
{
Yii::configure($this, require($this->getBasePath() . DS . $sFolderName . DS . $sFileName . '.php'));
return $this;
}
Run Code Online (Sandbox Code Playgroud)
配置文件
return [
'components' => [
'urlManager' => [
'class' => 'yii\web\UrlManager',
'rules' => [
'/admin' => '/admin/index/index',
]
]
]
];
Run Code Online (Sandbox Code Playgroud)
现在我需要以某种方式合并当前配置(主要用于Web应用程序)与从模块加载的配置.最后,我想在模块配置路由中仅描述此模块,并将它们用于漂亮的URL(用户友好的URL).我怎么能这样做?这个例子在我创建url时不起作用/admin/index/index,它显示了我/admin/index/index但我想要/admin在模块规则中提到.
这是一个实体(EDITED:完整文件内容)
// Eve\MoonBundle\Entity\MoonMaterial.php
namespace Eve\MoonBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
//use Doctrine\Common\Collections\ArrayCollection;
/**
* @ORM\Table(name="_moon_material")
* @ORM\Entity()
*/
class MoonMaterial
{
public function __construct()
{
//$this->invTypes_byTypeID = new ArrayCollection();
}
// relations start
/**
* @ORM\OneToOne(targetEntity="Eve\DumpBundle\Entity\invTypes")
* @ORM\JoinColumn(name="typeID", referencedColumnName="typeID")
*/
private $invTypes_byTypeID;
public function get_invTypes_byTypeID()
{
return $this->invTypes_byTypeID;
}
// relations end
/**
* @ORM\Column(name="userID", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="NONE")
*/
private $userID;
/**
* @ORM\Column(name="moonID", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="NONE")
*/
private $moonID;
/**
* @ORM\Column(name="typeID", …Run Code Online (Sandbox Code Playgroud) 让我们从基本的东西开始,简单的例子是Yii.它有小部件这样的东西.独立,可配置和可从我们想要的类的任何地方调用.而我想知道symfony2可以有相同的吗?它会是什么?控制器捆绑?动作简单(方法)?带参数的小工具(树枝)?
在Yii中,我们创建类(小部件),独立,描述和使用(通过调用模板).它在symfony2中会如何?
简单的例子'我想使用widget创建菜单导航,它将根据用户角色构造html'.
symfony ×4
doctrine ×2
database ×1
doctrine-orm ×1
one-to-one ×1
orm ×1
php ×1
routes ×1
widget ×1
yii2 ×1