symfony 路由和mysql的操作

1.手动建bundle

首先在src目录下建一个和自带的AppBundle文件差不多的,我们命名叫

BlogBundle=>下面在建Controller文件和BlogBundle.php文件=>在Controller文件下面在建一个LuckyController.php

这两个php文件和我们自带的AppBlundle里面的文件差不多就是要改下路径,=>要在app/config/routing.yml改下访问的名字,这是我们访问还是会报错=>在app/AppKernel.php里要实例化  new BlogBundle\BlogBundle(),在访问就OK了,

2.自动生成bundle

在项目文件夹里名为icq># bin/console   generate:bundles  --namespace=ArticleBundle(这个是src下面的文件)

中间的直接回车有一项要选yml

这个文件里自动生成config和views文件有一个routing.yml


 

actile_homepage:
path: /actile //要访问的名字
defaults: { _controller: ProductBundle:Default:index } 文件名:类名:方法名(开始自动生成的路径)

也要在app/AppKernel.php里要实例化  new ArticleBundle\ArticleBundle(),要有多个方法的话访问地址前面都有相同的,这样我们都把相同的加到app/config/routing.yml       prefix:   /要加入的名字;

 

1.创建数据库          官网http://symfony.com/doc/current/doctrine.html


 
# app/config/parameters.ymlparameters:  
 database_host:    localhost    
database_name:      symfony    
database_user:      root  
 database_password:  root
bin/console doctrine:database:create         # bin/console doctrine:database:drop --force

 

登录到数据库 mysql/bin/mysql

找到bin >./mysql -h localhost -u root -p 回车

possword:root

show databases;查看有没有symfony这个库

2.创建表

 
// src/AppBundle/Entity/Product.php
namespace AppBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
* @ORM\Entity
* @ORM\Table(name="product")
*/
class Product
{
/**
* @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;

/**
* @ORM\Column(type="string", length=100)
*/
private $name;

/**
* @ORM\Column(type="decimal", scale=2)
*/
private $price;

/**
* @ORM\Column(type="text")
*/
private $description;
}
 

执行这条命令
bin/console doctrine:generate:entities AppBundle
bin/console doctrine:schema:update --force
再到数据库查看

use symfony:

show   tables:

desc procduct;

查看有表 代表创建成功;

 

3.对数据库的增删改查    还要建Bundle

1.插入数据


 

public function addAction()
{
$product = new Product();
$product->setName('Keyboard');
$product->setPrice(19.99);
$product->setDescription('Ergonomic and stylish!');

$em = $this->getDoctrine()->getManager();
$em->persist($product);
$em->flush();
return new Response('Saved new product with id '.$product->getId());
}

 

2.更新


 

public function updateAction()
{
$em = $this->getDoctrine()->getManager();
$product = $em->getRepository('AppBundle:Product')->find(4);
$product->setName('New product name!');
$product->setPrice(22.22);
$em->flush();

echo 'ok';die();
}

3取数据

 

public function indexAction()
{
$em = $this->getDoctrine()->getManager();
$product = $em->getRepository('AppBundle:Product')->findAll();
return $this->render('ProductBundle:Default:index.html.twig',array('products'=>$product));
}

4.查询

 

public function showAction($id=1)
{
$em = $this->getDoctrine()->getManager();
$product = $em->getRepository('AppBundle:Product')->find($id);
echo $product->getName();die();
}

#findOneById() findOneByName()

5.删除

 

public function deleteAction()
{
$em = $this->getDoctrine()->getManager();
$product = $em->getRepository('AppBundle:Product')->find($id);
$em->remove($product);
$em->flush();
}

6.   ProductBundle/Resources/views/default/index.html.twig

 

<h1>aaaa</h1>
<ul>
{% for product in products %}
<li>{{product.id}}.{{product.name}}<a href="{{ path('product_delete' , {'id':product.id}) }}">delete</a></li>
{% endfor %}
</ul>

评论 抢沙发