symfony2笔记
public function indexAction($count, $firstName)
{
return new Response('It\'s a traaaaaaaap!');
}
public function indexAction($count, $firstName)
{
return $this->render(
'EventBundle:Default:index.html.twig',
array('name' => $firstName)
);
}
使用变量{{ name }}
也可以打印变量 <?php echo $name;?>
{% for i in ..count %}
Hello <strong>{{ name }}</strong> # {{ i }}!<br/>
{% endfor %}
注释:{# Hello comments! #}
过滤:
Hello <strong>{{ name|upper }}</strong>
模板继承:定义一个基础模板,app/Resources/views/base.html.twig
{# app/Resources/views/base.html.twig #}
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>{% block title %}Welcome!{% endblock %}</title>
{% block stylesheets %}{% endblock %}
<link rel="icon" type="image/x-icon" href="{{ asset('favicon.ico') }}" />
</head>
<body>
{% block body %}{% endblock %}
{% block javascripts %}{% endblock %}
</body>
</html>
继承上面的模板:
{# src/Yoda/EventBundle/Resources/views/Default/index.html.twig #}
{% extends '::base.html.twig' %}
{% block body %}
{# ... the rest of the template ... #}
{% endblock %}
::base.html.twig 模板命名有讲究
模板文件名由三部分组成:bundle,子文件夹,模板文件
在上面的模板例子中,bundle 和子文件夹是缺失的
看下面的例子:
/bundle/子目录/模板文件
EventBundle:Default:index.html.twig:src/Yoda/EventBundle/Resources/views/Default/index.html.twig
/bundle/模板文件
EventBundle::index.html.twig:src/Yoda/EventBundle/Resources/views/index.html.twig
/模板文件
::base.html.twig:app/Resources/views/index.html.twig
Doctrine2的基本概念
1.实体对象-Entity
字段
关系
2.对象操作集合-Repository
有统一的数据库方法
3.Proxy Class
动态根据关系查询数据库
4.DQL
5.事件监听机制 自动添加时间字段
从无到有:设计,配置,生成数据库
设计数据库关系和主要字段
配置symfony2数据库连接
配置entity
生成get/set/repository
生成真实数据库
/*只返回一条记录*/
$user = $em->getRepository('User')->findOneBy(array('id'=>));
/**修改id为1的name字段**/
$user->setName('Miyaye');
/*实例化,同步到数据库*/
$em->persist($user);
$em->flush(); /*DQL语句*/
$query = $em->createQuery(
'select u from DataBundle:User p where u.name = :name'
)->setParameter('name','Alice'); /*使用querybuilder生成dql语句*/
$query2 = $em->getRepository('User')->createQueryBuilder('U')
->where('u.name = :name')
->setParameter('name','Alice')
->getQuery();
创建Entity
php app/console doctrine:generate:entity
The Entity shortcut name:MiyayewebBundle:User
生成User表以及repository get set方法
generate:doctrine:entities
1.通过generate:doctrine:entity 选空repository
生成一个空的entity
2.通过generate:doctrine:entities Bundle
生成entity的方法 和 repository
<?php namespace Miyaye\webBundle\Entity; use Doctrine\ORM\Mapping as ORM; /**
* @ORM\Table(name="user")
* @ORM\Entity(repositoryClass="UserRepository")
*/
class User
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\Column(type="string")
*/
protected $username;
/**
* @ORM\Column(type="string")
*/
protected $password; /**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
} /**
* Set username
*
* @param string $username
* @return User
*/
public function setUsername($username)
{
$this->username = $username; return $this;
} /**
* Get username
*
* @return string
*/
public function getUsername()
{
return $this->username;
} /**
* Set password
*
* @param string $password
* @return User
*/
public function setPassword($password)
{
$this->password = $password; return $this;
} /**
* Get password
*
* @return string
*/
public function getPassword()
{
return $this->password;
}
}
symfony2笔记的更多相关文章
- Symfony2 学习笔记之系统路由
mfony2 学习笔记之系统路由 漂亮的URL绝对是一个严肃的web应用程序必须做到的,这种方式使index.php?article_id=57这类的丑陋URL被隐藏,由更受欢迎的像 /read/ ...
- symfony2 环境搭建笔记
本机环境:windows+xampp symfony下载:官网下载 环境配置: 1.下载后将symfony文件夹解压到xampp/htdocs中(最好改一下文件夹名,尽量小写) 2.Symfony2自 ...
- Symfony2 学习笔记之内部构件
Symfony2内部是怎样工作的以及我们如何来扩展它呢?从外部整体上看,symfony2代码是由许多独立的层构成,每一层都是建立在前一层基础之上.其中,自动加载时不受框架直接管理的,它完全是在Univ ...
- Symfony2 学习笔记之插件格式
一个bundle类似于其它框架中的插件,但是比插件表现更好.它跟其它框架最主要的不同是在Symfony2中所有东西都是bundle,包括核心框架功能和你写的所有应用程序代码.Symfony2中,bun ...
- Symfony2学习笔记之表单
对于一个Web开发者来说,处理HTML表单是一个最为普通又具挑战的任务.Symfony2集成了一个Form组件,让处理表单变的容易起来.在这一节里,我们将从基础开始创建一个复杂的表单,学习表单类库中最 ...
- Symfony2学习笔记之HTTP Cache
富web应用程序的本质意味着它们的动态.无论你的应用程序多么有效率,每个请求比起静态文件来说总会存在很多的耗费.对于大多数web程序来说,这没什么. Symfony2非常的轻快,无论你做些严重超载的请 ...
- Symfony2学习笔记之数据校验
校验在web应用程序中是一个常见的任务.数据输入到表单需要被校验.数据在被写入数据库之前或者传入一个webservice时也需要被校验. Symfony2 配备了一个Validator 组件,它让校验 ...
- Symfony2 学习笔记之服务容器
现在的PHP应用程序都是面向对象开发,所以主要是由对象构成.有的对象可以方便的分发邮件信息而有的可能帮你把信息写入到数据库中.在你的应用程序中,你可能创建一个对象用于管理你的产品库存,或者另外一个对象 ...
- Symfony2 学习笔记之控制器
一个controller是你创建的一个PHP函数,它接收HTTP请求(request)并创建和返回一个HTTP回复(Response).回复对象(Response)可以是一个HTML页面,一个XML文 ...
随机推荐
- C#知识点-枚举器和迭代器
一.几个基本概念的理解 问题一:为什么数组可以使用foreach输出各元素 答:数组是可枚举类型,它实现了一个枚举器(enumerator)对象:枚举器知道各元素的次序并跟踪它们的位置,然后返回请求的 ...
- IFormattable,ICustomFormatter, IFormatProvider接口
定 义 1.IFormattable 提供一种功能,用以将对象的值格式化为字符串表示形式. 2.IFormatProvider 提供用于检索控制格式化的对象的机制 ...
- 北工大2017校赛 1101:要打车的FanZzz
题目链接: http://bjutacm.openjudge.cn/lianxi/1101/ 思路: 二分 + 二分图最大匹配. 开始的时候我想直接用最小费用流模型,后来发现这样是错误的.因为这道题实 ...
- 面试中的一些小问题之ES5和ES6的区别?
1995年,JavaScript作为网景浏览器的一部分首次发布,起初并不叫JavaScript,而是叫LiveScript,但是因为当时Java正火,也算是为了搭上java的顺风车,于是改成了Java ...
- 【译】x86程序员手册27-7.6任务链
7.6 Task Linking 任务链 The back-link field of the TSS and the NT (nested task) bit of the flag word to ...
- Java_大数值_16.5.12
如果基本的整数和浮点数精度不能满足要求,那么可以使用java.math包中的BigInteger和BigDecimal这两个类.这两个类可以处理包含任意长度数字序列的数值.BigInteger类实现了 ...
- Redis系列(八)--缓存穿透、雪崩、更新策略
1.缓存更新策略 1.LRU/LFU/FIFO算法剔除:例如maxmemory-policy 2.超时剔除,过期时间expire,对于一些用户可以容忍延时更新的数据,例如文章简介内容改了几个字 3.主 ...
- Don't make me think [读书笔记] [思维导图]
<Don't make me think>第3版 内容:解析用户心理,在用户模式.扫描设计.导航设计.主页布局.可用性测试,提出了许多的独到观点及建议. 特色:语言轻松.实在.配有许多 ...
- LCS(HDU_5495 循环节)
传送门:LCS 题意:给出两个序列an和bn,想在给出一个序列pn,问经过a[p1],,,,a[pn]和b[p1],,,b[pn]变换后序列a和序列b的最长公共子序列的长度是多少. 思路:对a[i]- ...
- Python爬虫常用库安装
建议更换pip源到国内镜像,下载会快很多:https://www.cnblogs.com/believepd/p/10499844.html requests pip3 install request ...