Practical symfony 3 дахь өдөр

The Data Model

Текст editor-оо нээгээд PHP код бичих гээд гар нь захтнаад байгаа та нарыг өнөөдрийн хичээл зарим  хөгжүүлэлтийг хийлгэж өгсөнөөр  баярлуулах болно. Бид Jobeet-ийн data model (өгөгдлийн загвар) тодорхойлж, ORM (Object Relation Mapping) ашиглаж өгөгдлийн баазтай холбогдон, application-ныхаа анхны модуль-ийг үүсгэх болно. Харин symfony бидний өмнөөс маш ихийг хийж өгөх бөгөөд, бид хэт их PHP код бичихгүйгээр бүрэн функлагдсан вэб модультай болох болно.

The Relational Model (Холбоотой загвар)

Өчигдөр бичсэн бидний хэрэглэгчийн загвар нь project-ийн гол объектыг тодорхойлно: ажлын байрууд, гишүүд мөн ангилалууд. Дараах Entity Relationship Diagram-ыг тодорхойллоо.

Загвар дээр тодорхойлогдсон баганууд дээр нэмэж тайлбарлахад бид created_at гэсэн талбарыг зарим хүснэгтэд нэмсэн. Symfony нь тэдгээр талбаруудыг ялгаж, танин, шинээр өгөгдөл үүсэх  үед системийн цагийг автоматаар олгодог.  Энэ мөн updated_at талбарт мөн ижилхэн: Тэдгээрийн утгууд нь,  өгөгдөл шинэчлэгдэх үед системийн цагаар шинэчлэгддэг.

The Schema (Схем)

Ажлын байр, гишүүн, категорыг хадгалахад мэдээж бидэнд Relational өгөгдлийн бааз шаардлагатай.

Харин symfony бол Объект Хандалтад framework болохоор бид объектыг ашиглана.  Жишээ нь: өгөгдлийн баазаас өгөгдлүүдийг цуглуулахдаа SQL хүсэлт бичихийн оронд бид объектыг ашиглан тухайн үйлдлийг гүйцэтгэх болно.

Relational(уялдаа, холбоотой) өгөгдлийн баазын мэдээлэл объект загвараар тодорхойлогдсон байх ёстой.  Энэ нь ORM хэрэгслээр хийгдэнэ.  Азаар symfony тэдгээрийн 2 болох Propel болон Doctrine-той хамт хийгдсэн.

ORM нь хүснэгтийн тодорхойлолт болон тэдгээрийн уялдаа холбоог харуулсан Class үүсгэхийн тулд тэдгээрийг мэдэх шаардлагатай.  Энэ тодорхойлох schema –г үүсгэх 2 байгаа. Өмнөх өгөгдлийн базаасаа шинэчлэх, эсвэл гараар үүсгэх.

Өгөгдлийн бааз хараахан байхгүй, мөн Jobeet –ын өгөгдлийн баазыг  үүсгэх шаардлагатай учираас, config/doctrine/schema.yml гэсэн хоосон файлыг засварлаж  schema файлыг гараар үүсгэе.

# config/doctrine/schema.yml

JobeetCategory:

actAs: { Timestampable: ~ }

columns:

name: { type: string(255), notnull: true, unique: true }

JobeetJob:

actAs: { Timestampable: ~ }

columns:

category_id: { type: integer, notnull: true }

type: { type: string(255) }

company: { type: string(255), notnull: true }

logo: { type: string(255) }

url: { type: string(255) }

position: { type: string(255), notnull: true }

location: { type: string(255), notnull: true }

description: { type: string(4000), notnull: true }

how_to_apply: { type: string(4000), notnull: true }

token: { type: string(255), notnull: true, unique: true }

is_public: { type: boolean, notnull: true, default: 1 }

is_activated: { type: boolean, notnull: true, default: 0 }

email: { type: string(255), notnull: true }

expires_at: { type: timestamp, notnull: true }

relations:

JobeetCategory: { onDelete: CASCADE, local: category_id, foreign: id,

foreignAlias: JobeetJobs }

JobeetAffiliate:

actAs: { Timestampable: ~ }

columns:

url: { type: string(255), notnull: true }

email: { type: string(255), notnull: true, unique: true }

token: { type: string(255), notnull: true }

is_active: { type: boolean, notnull: true, default: 0 }

relations:

JobeetCategories:

class: JobeetCategory

refClass: JobeetCategoryAffiliate

local: affiliate_id

foreign: category_id

foreignAlias: JobeetAffiliates

JobeetCategoryAffiliate:

columns:

category_id: { type: integer, primary: true }

affiliate_id: { type: integer, primary: true }

relations:

JobeetCategory: { onDelete: CASCADE, local: category_id, foreign: id }

JobeetAffiliate: { onDelete: CASCADE, local: affiliate_id, foreign: id

}

Хэрэв та бичигдсэн SQL хүсэлтээр хүснэгт үүсгэхээр шийдсэн бол doctrine:build-schema коммандаар schema.yml тохиргооны файлыг ажиллуулан хүснэгтүүд үүсгэх боломжтой.

$ php symfony doctrine:build-schema

Дээрх команд таныг databases.yml дээр өгөгдлийн баазын тохиргоог шаардана.  Дараах алхамаар бид хэрхэн өгөгдлийн баазыг тохируулахыг харуулна. Хэрэв та дээрх командыг ажиллуулах гэж үзвэл schema нь  ямар өгөгдлийн баазтайг мэдэхгүй улмаас ажиллахгүй.

Schema бол YAML формат дээрх entity relationship diagram-ын шууд тусгал юм.

YAML Формат

Албан ёсны YAML(http://yaml.org/) форматын вэб сайтын дагуу бол YAML бол бүх програмын хэлэнд зориулсан хүний хялбар өгөгдлийн бүтэцлэгдсэн стандарт.

Өөрөө хэлбэл, YAML бол өгөгдлийг тодорхойлоход энгийн хэл (strings, integers, dates,

arrays, and hashes).).

YAML-д бүтэц нь догол мөрөөр харагддаг,  таслалаар тусгаарлагдаж дараалсан, түлхүүр үг/ утга нь цуг хашилт дотор тусгаарлагдаж байрладаг. YAML нь мөн ижил төрлийн бүтцийг цөөхөн мөрөөр тодорхойлж болох богино бичилттэй: массив нь [] –д , мөр нь {} дотор тодорхойлогдоно.

Хэрэв та YAML форматыг сайн мэдэхгүй бол, одоо symphony framework-той хамт сурч эхлэх болно. Учир нь symphony өөрийн тохиргооны файлдаа YAML-ыг өргөнөөр хэрэглэдэг. YAML-ыг сурах нэг сайн арга нь Компонентын сурах авлагаас нь унших юм (http://components.symfony-project.org/yaml/documentation).

YAML форматыг засварлах явцад таны зайлшгүй мэдэх шаардлагатай нэг зүйл бол: догол мөр хоорондын зай нь нэг, юмуу хоёр хоосон зайгаар хэмжигдэнэ, таб зай авалтаар биш.

schema.yml файл бүх хүснэгт, тэдгээрийн багануудын тодорхойлолтыг агуулсан байна. Багана бүр дараах мэдээллээр тодорхойлогдоно.:

• type: Баганы төрөл (boolean, integer, float, decimal, string, array,

object, blob, clob, timestamp, time, date, enum, gzip)

• notnull: хэрэв багана нь заавал утгатай байх шаардлагатай бол утгыг true болго.

• unique: багананд цор ганц индех үүсгэхийг хүсвэл утгыг true болго.

OnDelete атрибут нь foreign key-ийн ON DELETE шинжийг тодорхойлно. Doctrine CASCADE, SET NULL, болон RESTRICT мөн дэмждэг. Тухайлбал, хэрэв ажлын байрны мэдээлэл устгагдсан бол түүнтэй хамааралтай jobeet_category_affiliate-ын утгууд мөн автоматаар устана.

Өгөгдлийн бааз

Symfony framework бүх PDO дэмждэг өгөгдлийн баазуудыг дэмждэг (MySQL, PostgreSQL, SQLite,Oracle, MSSQL, …). PDO (http://www.php.net/PDO) бол PHP-тэй хамт байдаг өгөгдлийн баазын abstraction layer (давхарга).

Энэ хичээлээр MySQL-ыг авч үзье.

$ mysqladmin -uroot -p create jobeet

Enter password: mYsEcret ## The password will echo as ********

Хэрэв та хүсвэл өөр өгөгдлийн бааз ашиглах бүрэн боломжтой. Бидний хэрэглэх ORM-д бичигдэх SQL –ыг өөрийн болгож бичихэд тийм хэцүү биш байх болно.

Бид symfony –д Jobeet project-д энэ өгөгдлийн баазыг ашигла гэдгийг хэлж өгөх хэрэгтэй.

$ php symfony configure:database

“mysql:host=localhost;dbname=jobeet” root mYsEcret

configure:database команд нь 3 аргумент авна. PDO DSN (http://www.php.net/manual/en/pdo.drivers.php) , хэрэглэгчийн нэр мөн өгөгдлийн баазтай холбогдох нууц үг. Хэрэв та хөгжүүлэх серверийн өгөгдлийн баазтайгаа холбогдохдоо нууц үг шаардлагагүй бол 3 дахь аргументын хэсгийн бичихгүй байж болно.

configure:database команд нь өгөгдлийн баазын тохиргоо config/databases.yml тохиргооны файлд хадгална. Командыг ажилуулахын оронд мөн гараар энэ файлыг засварлах боломжтой.

Баазын нууц үгийг коммандын хэрэгслээр бичих нь тохиромжтой боловч нууцлалгүй арга юм. Таны орчинд хэн хандаж байгаагаас хамаараад, config/databases.yml файлыг засварлаж нууц үгээ өөрчилсөн нь илүү дээр болов уу. Мэдээж, нууц үгээ сайн хадгал, тохиргооны файл-ын холбогдох mode нь хориглосон (resricted) байх хэрэгтэй.

ORM

Өгөгдлийн баазыг тодорхойлох schema.yml файлын ачаар бид өгөгдлийн баазын хүснэгт үүсгэхэд шаардлагатай байдаг SQL хүсэлтийг боловсруулах зарим Doctrine built-in (байгуулах) командыг ашиглах боломжтой болдог.

SQL хүсэлт болосвруулахын (ажиллуулах) –ын тулд хамгийн түрүүнд schema файлаараа model-оо үүсгэх ёстой.

$ php symfony doctrine:build –model

Одоо чиний model-ууд SQL хүсэлтийг оруулах болон боловсруулахад боломжтой боллоо.

$ php symfony doctrine:build –sql

doctrine:build –sql команд бидний өмнө тохиргоо хийсэн өгөгдлийн баазад зориулсан  SQL хүсэлтийг data/sql/ хавтасд боловсруулдаг.

# snippet from data/sql/schema.sql

CREATE TABLE jobeet_category (id BIGINT AUTO_INCREMENT, name VARCHAR(255)

NOT NULL COMMENT ‘test’, created_at DATETIME, updated_at DATETIME, slug

VARCHAR(255), UNIQUE INDEX sluggable_idx (slug), PRIMARY KEY(id))

ENGINE = INNODB;

Өгөгдлийн бааздаа яг хүснэтүүд үүсгэхэд та doctrine:insert-sql командыг ажиллуулах шаардлагатай.

$ php symfony doctrine:insert-sql

Дээрх команд нь хүснэгтийг үүсгэхээс өмнө өмнөхийг нь устгах учираас таныг батлах үйлдлийг хийхийг шаарддаг.  Та мөн –no-confirmation гэсэн сонголтыг нэмж асуултыг өнгөрөөж болдог. Энэ мөн та non-interactive (харилцаа, холбоогүй) batch-д командыг—ийг ажиллуулахад илүү хэрэглэгддэг.

$ php symfony doctrine:insert-sql –no-confirmation

Бусад командын хэрэглүүрийг бодоход symfony-ийн команд нь аргументууд болон сонголтууд авах боломжтой байдаг. Команд (task) бүр тусламжийн мэдээллэлтэйгээр хийгдсэн ба help гэсэн командыг ажиллуулсанаар дэлгэцэнд хэвлэгдэнэ.

$ php symfony help doctrine:insert-sql

Тусламжийн мэдээлэл нь бүх боломжит аргумент болон сонголтуудыг жагсаан харуулах ба тус бүрийн анхны авч болох утгууд болон хэрэг болох хэд хэдэн жишээтэйгээр мэдээллийг харуулдаг.

ORM мөн хүснэгтийн бүтцийн зургийг объект болгосон PHP классуудыг мөн боловсруулдаг.

$ php symfony doctrine:build –model

doctrine:build –model команд өгөгдлийн баазтай холбогддог PHP файлуудыг lib/model/ хавтас дотор үүсгэдэг.

Хавтас дотор орж үзвэл та Doctrine хүснэгт бүрт 3-н классыг үүсгэснийг олж харах болно. Jobeet_job хүснэгтийн хувьд:

• JobeetJob: Класын объект нь jobeet_job хүснэгтийн нэг баганы (record) –ыг илэрхийлнэ. Класс Default (анхны) утгандаа хоосон байна.

• BaseJobeetJob: JobeetJob класс эх класс. doctrine:build –model, командыг ажиллуулах бүрд энэ класс дахин тодорхойлогддог, тиймээс бүх өөрчлөлт, хувиргалтууд JobeetJob класс дээр хийгдэг ёстой байдаг.

• JobeetJobTable: Класс нь ихэвчлэн JobeetJob-ийн объектуудын цуглуулга (collection)-г буцаадаг функцуудыг (methods) тодорхойлдог.  Анхны утгандаа класс хоосон байна.

Өгөгдлийн баганануудын утгууд нь model  объектын зарим холбогч (get*() функцууд) ба утга олгогч (set*() функцууд) –даар холбогдож ашиглагддаг.

$job = new JobeetJob();

$job->setPosition(‘Web developer’);

$job->save();

echo $job->getPosition();

$job->delete();

Та мөн объектуудыг хамтад нь холбох foreign key-уудыг мөн тодорхойлж өгч болно.

$category = new JobeetCategory();

$category->setName(‘Programming’);

$job = new JobeetJob();

$job->setCategory($category);

doctrine:build –all команд нь бидний энэ бүлэг (хэсэг)-ээр ажиллуулсан командууын хялбар хувилбар бөгөөд нэмэлт хэдэн зүйлүүдтэй. Тиймээс энэ командыг ажиллуулан Jobeet model классын форм болон баталгаажуулагчид (validators)-ыг боловсруулъя.

$ php symfony doctrine:build –all –no-confirmation

Энэ өдрийн төгсгөл та action –ын баталгаажуултыг харах ба форм-ын хэсэг нь илүү дэлгэрэнгүйгээр 10 дахь өдөрт тайлбарласан байгаа.

Анхны өгөгдөл

Өгөгдлийн бааздаа бид хүснэгтүүд үүсгэсэн байгаа боловч ямар ч өгөгдөлгүй оруулаагүй. Ямар ч вэб програм (application) –д 3 төрлийн өгөгдөл байдаг.

Анхны өгөгдөл:  Анхны өгөгдөл нь application ажлахын тулд байх шаардлагатай байдаг. Жишээ нь: Jobeet –д анхны хэдэн ангилалууд шаардлагатай. Хэрэв байхгүй бол, хэн ч ажлын байр оруулж чадахгүй. Мөн бидэнд админы (backend) хэсэг рүү нэвтэрч орохын тулд  админ хэрэглэгч мөн шаардлагатай.

Тестийн өгөгдөл: Тестийн өгөгдөл нь application-ыг тестэлж үзэхэд хэрэгтэй. Хөгжүүлэгчийн зүгээс та хэрэгчийн тодорхойлох хэсэгт гарсанчлан Jobeet програм үнэн зөв ажиллаж байгаа эсэхийг шалгах тест бичиж өгнө. Хамгийн сайн арга бол автомат тест бичих. Тиймээс тестээ шалгах бүрдээ таньд үнэн зөв шалгахад шаардлагатай өгөгдлүүд орсон өгөгдлийн бааз байх шаардлагатай.

Хэрэглэгчийн өгөгдөл:  Хэрэглэгчийн өгөгдөл нь хэрэглэгчээс үүсдэг програмын жирийн ажиллагаанд зоруулсан өгөгдөл.

Symfony өгөгдлийн баазад хүснэгт үүсгэх бүрд бүх өгөгдлүүд устдаг. Анхдагч өгөгдлүүдтэйгээр өгөгдлийн бааз үүсгэхийн тулд бид PHP код бичиж өгөх эсвэл mysql програмаас зарим SQL хүсэлтийг ажиллуулах боломжтой. Хийх зүйл нь илэрхий ,  symfony илүү боломжтой:  data/fixtures/ хавтасд YAML файл үүсгээд doctrine:data-load командаар өгөгдлийн бааз руу уншуулна.

Эхлээд, дараах fixture файлыг үүгэнэ.

# data/fixtures/categories.yml

JobeetCategory:

design:

name: Design

programming:

name: Programming

manager:

name: Manager

administrator:

name: Administrator

# data/fixtures/jobs.yml

JobeetJob:

job_sensio_labs:

JobeetCategory: programming

type: full-time

company: Sensio Labs

logo: sensio-labs.gif

url: http://www.sensiolabs.com/

position: Web Developer

location: Paris, France

description: |

You’ve already developed websites with symfony and you want to work

with Open-Source technologies. You have a minimum of 3 years

experience in web development with PHP or Java and you wish to

participate to development of Web 2.0 sites using the best

frameworks available.

how_to_apply: |

Send your resume to fabien.potencier [at] sensio.com

is_public: true

is_activated: true

token: job_sensio_labs

email: job@example.com

expires_at: ‘2010-10-10’

job_extreme_sensio:

JobeetCategory: design

type: part-time

company: Extreme Sensio

logo: extreme-sensio.gif

url: http://www.extreme-sensio.com/

position: Web Designer

location: Paris, France

description: |

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do

eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut

enim ad minim veniam, quis nostrud exercitation ullamco laboris

nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor

in reprehenderit in.

Voluptate velit esse cillum dolore eu fugiat nulla pariatur.

Excepteur sint occaecat cupidatat non proident, sunt in culpa

qui officia deserunt mollit anim id est laborum.

how_to_apply: |

Send your resume to fabien.potencier [at] sensio.com

is_public: true

is_activated: true

token: job_extreme_sensio

email: job@example.com

expires_at: ‘2010-10-10’

job fixture файл 2 зургийг агуулдаг. Энэ зургуудыг дараах линкүүдээс татаж аваад web/uploads/jobs/ хавтас дотор хий.

(http://www.symfony-project.org/get/jobeet/sensio-labs.gif,

http://www.symfony-project.org/get/jobeet/extreme-sensio.gif)

fixture файл нь YAML дээр бичигдсэн ба model-ын объектуудыг тодорхойлдог, цорын ганц нэртэйгээр ордог (тухайлбал job_sensio_labs ,job_extreme_sensio гэсэн 2 ажлын байрыг тодорхойлсон.)  Энэ нь primary key-уудыг (ихэвчлэн auto-increment-ээр хангагдсан тодорхойлох боломжгүй)  тодорхойлж ашиглахгүйгээр холбоосд ашиглах боломжтой байдаг.  Тухайлбал, job_sensio_labs гэсэн ажлын байрын ангилал нь programming, Programming ангилал руу холбогдоно.

YAML файлд тэмдэгт нь мөр таслалт агуулсан бол (job fixture –ын description багана-д байгаатай адилхан),  (|) босоо зураасыг ашиглан тэмдэгтүүд нь хэд хэдэн мөр байгааг илэрхийлж өгч болно.

Fixture файл нэг эсвэл хэд хэдэн model-ийн объектыг багтааж болох боловч,  Jobeet fixture-д зориулан бид нэг файлыг нэг model-д зориулан бичихээр болсон.

Propel дээр аль файл эхэнд дуудагдаж ажиллахаас шалтгаалж fixture-ын нэрүүд нь өмнөө тоотой байх шаардлагатай байдаг. Doctrine-д уншигдах бүх fixture-д тийм байх шаардлагагүй ба foreign key-үүдийг тодорхойлсноор зөв байрлалаар хадгалагддаг.

Fixture файлд та бүх багануудыг тодорхойлж өгөх албагүй. Өгөөгүй бол, symfony  автоматаар өгөгдлийн баазын schema-д тодорхойлогдсончсон default утгыг оноодог. Symfony өгөгдлийг бааз руу уншуулахдаа Doctrine-ыг ашиглавал бүх байгуулагч үйлдлүүд (автоматаар  тохирдог created_at, updated_at шиг) ба таны model класс-д өөрийн үүсгэж болох үйлдлүүд  идэвхждэг.

Анхны өгөгдлийг бааз руу уншуулах нь маш амархан doctrine:data-load командыг ажиллуулахад л болно.

$ php symfony doctrine:data-load

doctrine:build –all –and-load команд нь doctrine:build –all командын түүнийг дагах doctrine:data-load командуудын хялбар хувилбар нь.

doctrine:build –all –and-load командыг ажиллуулж бүх зүйл schema-с боловсруулагдсан эсэхийг шалга. Ингэхэд таньд form, filter, model –ууд үүсгэн баазыг устган дахин шинээр бүх хүснэгтийг үүсгэнэ.

$ php symfony doctrine:build –all –and-load

Browser- дээр харах

Бид маш их командын хэрэгслийг ашиглалаа, тийм ч сайхан санагдаагүй байх ялангуяа вэб project-д . Бидэнд одоо өгөгдлийн баазтай Вэб хуудас үүсгэхэд шаардлагатай бүхий л бэлэн болсон.

За тэгвэл, ажлын байрны жагсаалтыг хэрхэн харуулах, хэрхэн засварлах, устгах зэргийг харцгаая.

Эхний өдөр заасанчлан symphony project бол application-уудаар үүсдэг.   Application бүр цаашилж модулиудад хуваагддаг.  Модуль бол application (жишээлбэл API модуль)-ны онцлогыг төлөөлсөн өөрөө агуулсан PHP кодууд, эсвэл хэрэглэгч model объект дээр хийгдэх боломж, ашиглалтууд (job модуль жишээ нь).

Symfony өгөгдсөн model-оор автоматаар модуль үүсгэх өөрийн үндсэн онцлог хэрэгсэлтэй:

$ php symfony doctrine:generate-module –with-show

–non-verbose-templates frontend job JobeetJob

doctrine:generate-module JobeetJob model-д зориулсан frontend application- дотор job модулийг үүсгэнэ. Ихэнх symphony-ын командын адилаар файлууд, болон хавтасууд apps/frontend/modules/job/ хавтас дотор үүснэ.

Хавтас Тайлбар

actions/ Модулийн action-гууд

templates/ Модулийн template-үүд

actions/actions.class.php файл job модулийн бүх боломжит action-г тодорхойлно.

Action Нэр Тайлбар

index Хүснэгтийн өгөгдлүүдийг харуулна

show Өгөгдсөн өгөгдлийн талбарууд болон утгуудыг харуулна

new Шинэ өгөгдөл үүсгэх Форм харуулна

create ШИнэ өгөгдөл үүсгэнэ

edit Өмнөх өгөгдлийн засварлах формыг харуулна

update хэрэглэгчийн илгээх утгуудаар өгөгдлийг шинэчлэнэ

delete хүснэгтээс өгөгдсөн өгөгдлийг устгана

Одоо та job модулийг browser дээрээ харж болно:

http://jobeet.localhost/frontend_dev.php/job

Хэрэв та ажлын байрыг засварлах гэж үзвэл, Category id унадаг цэсээс бүх боломжит ангилалуудын жагсаалтыг харна. Сонголт бүрийн утгууд нь __toString() функцаас ирж байгаа.

Docrine үндсэн __toString() функцийг тодорхой багануудын нэрээр жишээ нь title, name, subject гэх мэтээр үүсгэх гэж оролддог.  Хэрэв та өөрийн __toString() функцийг үүсгэхийг хүсвэл доорхийн адилаар үүсгэх боломжтой. JobeetCategory model  -ийн __toString() функцийг jobeet_category хүснэгтийн name баганаар байдгаар гэж үзье

// lib/model/doctrine/JobeetJob.class.php

class JobeetJob extends BaseJobeetJob

{

public function __toString()

{

return sprintf(‘%s at %s (%s)’, $this->getPosition(),

$this->getCompany(), $this->getLocation());

}

// lib/model/doctrine/JobeetAffiliate.class.php

class JobeetAffiliate extends BaseJobeetAffiliate

{

public function __toString()

{

return $this->getUrl();

}

}

Одоо та ажлын байрууд үүсгэж, засварлах боломжтой боллоо. Заавал оруулах шаардлагатай талбаруудыг хоосон эсвэл date—д буруу утга оруулж үзээрэй.  Тэгвэл та symfony  үүссэн баазын schema-аар үндсэн баталгаажуулалтыг(validation) үүсгэдгийг харна.

Маргааш болтол баяртай.

Өнөөдөртөө ингээд боллоо. Танилцуулгын эхэнд таньд сануулсанчлан өнөөдөр бид дөнгөж жоохон PHP код бичсэн боловч бид өөрчилж, сайжруулахад бэлэн болсон job model-ийн модуль –тай болсон. Ямар ч PHP код байхгүй гэдэг нь өөр хэлбэл ямар ч алдаагүй гэдгийг санаарай.

Хэрэв та одоо сэргэг, хангалттай энергитэй байгаа бол, модульд үүссэн код болон model-ийг харан хэрхэн ажиллаж байгааг ойлгохыг хичээгээрэй.  Үгүй бол, санаа зоволтгүй ээ, сайхан амраарай, маргааш бид хамгийн их вэб framework-д хэрэглэгдэж байгаа paradigm MVC загварчлалын талаар ярилцана.

Published by

Think!

Web developer. Open source enthusiast.

83 thoughts on “Practical symfony 3 дахь өдөр”

  1. YML format-аар бичихдээ хоорондын зайг нь сайн харах хэрэгтэй шүү. Дагалдах schema.yml, jobs.yml, categories.yml файлуудыг
    http://rapidshare.com/files/402275020/jobeet_yml-uud.rar
    холбоосоор татаж авч болно.

    Мөн англи хэл дээрх хичээлийг
    http://www.symfony-project.org/jobeet/1_4/Doctrine/en/03 орж хараарай.

    За амжилт!

  2. Миний хувьд netbeans IDE ашиглчдаг амар байдын бичиглэлийн алдаа нээх гараад байхгүй.
    Одоо бүүр Symfony Zend 2 ыг ууланг нь дэмждэг болцон байна лээ

    1. uildliin system chin Vista ymuu Windows7 bol xampp-aa c:\Program Files dotor ni suulga, Xp bol C:\ dotor hamaagui.
      tgd C:\Program Files\xampp\apache\conf\extra dotorh httpd-vhosts.conf urgutgultei file-iin hamgiin door

      ServerName dayar
      DocumentRoot “C:\development\sfprojects\example\web”
      DirectoryIndex index.php
      Alias /sf C:\development\sfprojects\example\lib\vendor\symfony\data\web\sf

      AllowOverride All
      Allow from All

      AllowOverride All
      Allow from All

      gej bicheed //Directory- ni chinii project-iin zam.// yer ni bol ajillana.

      harin command line-aa System-iinhee Environment bolgohdoo My Computer->Properties->Advanced System Settings->Advanced->Environment Variables-> system variables heseg-iin path: –in hamgiin ard uuriinhuu mysql, php-iinhee zamiig zalgaj bichne.
      jishee ni: ;C:\Program Files\xampp\php;C:\Program Files\xampp\mysql\bin
      zam hoorondoo ; -aar tusgaarlagdana shuu.
      uur asuuh ym bwal erheme318@gmail.com– oor orood ireerei

  3. biznetwork Sympony deer hiigdsen baih ym. Biznetwork-n site bol uneheer sain site. gehdee haya haya jijig aldaanuud garj irj baihiin. Biznetwork site-n Компани цэсний Компани бүртгүүлэх гэсэн цэсэнд ороод үргэжлүүлэх гэсэн button-г дарвал
    The server returned a “500 Internal Server Error”. гэсэн бичигтэй Sympony-ийн лого гарч ирж байна. Biznetwork бол үнэхээр сайн веб сайт.Тиймээс би Sympony сурахыг маш их хүсч байна. Бүүр мөрөөдөөд байна. kkkk

  4. Сайнуу. Монгол хэл дээрээ уншихаар илүү ойлгомжтой юм. Та бүхэнд талархаж байнаа. Цааш нь орчуулаад байгаарай амжилт хүсье

  5. Сайн байна уу? Би symfony-ийг ubuntu дээр суулгаж байгаа юм гэтэл

    $ php symfony doctrine:insert-sql
    комманд өгхөөг
    SQLSTATE[HY000]: General error: 1005 Can’t create table ‘jobeet.#sql-519_55’ (errno: 121). Failing Query: “ALTER TABLE jobeet_job ADD CONSTRAINT jobeet_job_category_id_jobeet_category_id FOREIGN KEY (category_id) REFERENCES jobeet_category(id) ON DELETE CASCADE”. Failing Query: ALTER TABLE jobeet_job ADD CONSTRAINT jobeet_job_category_id_jobeet_category_id FOREIGN KEY (category_id) REFERENCES jobeet_category(id) ON DELETE CASCADE
    гэсэн алдаа гараад

    $ php symfony doctrine:build –all –and-load
    комманд өгхөөр

    Couldn’t find class job_extreme_sensio
    гэсэн алдаанууд гараад байхын туслаач!!!

    1. 1.Чи эхлээд jobeet гэсэн нэртэй бааз үүсгэх хэрэгтэй. тэдгээд doctrine:insert-sql гээд ажиллуул. Хэрэв ямар нэгэн баталгаажуулах (бааз дарж үүсгэх) зэрэг асуулт хэрэггүй гэвэл doctrine:insert-sql –no-confirmation гээд ажиллуул.

      2. doctrine:build –all –no-confirmation гээд ажиллуулчих. -and-load гэдэг сонголт нь data/fixtures/ dotorh yml файлыг уншина. Тэнд yml дээр заа хоорондын алдаа байж магад.

      Амжилт хүсье

      1. маш их баяраллаа yml дээрээ алдаатай байсан юм байна дахин баяралла 🙂

  6. $ php symfony doctrine:insert-sql -ийг ажиллуулахаар доорхи алдаа зааж байна. MySqlAdmin -дээр jobeet гэсэн дата бааз үүсгэсэн боловч.

    >> doctrine creating tables

    PDO Connection Error: SQLSTATE[28000] [1045] Access denied for user ‘root’@’lo
    calhost’ (using password: YES)

      1. Баярлаа. MySqlAdmin дээр датабааз үүсгэхдээ админ нууц үггүй үүсгэчээд холбохдоо нууц үг ашиглаж холбосон нь алдаа гарч байсан байна лээ.

  7. Sain bn uu bi neg zuil asuuh gesen ym aaa windwis OS deer wamp ashiglaj symfony deer ym hiij uzeh geed tegsen ene yaml Geed bgaa baaz uusgedeg ym uu daa teriig ni yaj suulgaj ashigladag ym be googledeed iolgoh ym alga jaahan mongol helbereer oilguulaj suulgaj ene hicheeliig ni oruulaad holbood ur dung ni uzeh ymsan ystoi boldoggui ee
    help me
    please thanks

    1. yml bol unshij oilgohod hyalbar file-iin format. symfony дээр ихэвчлэн тохиргоон дээр ашиглана. Бичихдээ мөр хоорондын зайгаар (indentation) ойлгогдоно. жишээлбэл:
      schema.yml file-д
      News: # Class-iin ner
      connection: doctrine # ORM
      tableName: news # DB-iin table-iin ner
      columns:
      id: { type: integer(4), primary: true, autoincrement: true } #id bagana integer төрөл, primaryKey true, autoincrement,
      name: { type: string(255), notnull: true } # name bagana varchar, notnull true
      relations: # foreign key bairlana,

      Netbeans ymuu, PhpEdit гэх мэт editor-ууд автоматаар debug хийдэг болохоор ашиглахад хялбар байдийн.

      За амжилт.

      1. Тэгэхээр би ингэж ойлгож болох юм байна тэ
        Энэ yаml format -аар yml өргөтгөлтэйф файл үүсгэнэ.Тэндээ баазынхаа зохион байгуулалтыг хийх юм байна mysql шиг онцлог нь relationship энэ тэр үүсгэж нэг бааз дээрээ өөрийн ойлгомжтойгоор нэр өгч янз янзаар yml файл үүсгэж болох нээ phpedit чинь харин их зүгээр эд байна лээ бүүр хялбар болгож өгсөн байх лээ ингэж баазаа зохион байгуулах жоохон төвөгтэй юм аа тэ ..
        NaviCat энэ тэр дэмждэг бол интерфайстэй ажиллавал 🙂 анхлан суралцагч шүү энэ хичээл дээр ирээд 2 хонож байна гацаад ..
        wamp ашигласан болохоор phpmysql дээр jobeet гэсэн DB үүсгээд дээрх schema.yml-д job , category энэ тэрийг copy paste хийчихээд cmd дээ php symfony doctrine:build –sql гэсэн чинь алдаа заагаад байхын
        The execution of task “doctrine:build” failed
        -Too many arguments (“doctrine:build umodel” given)гэчээд ажиллахгүй байх шиг байна даа

      2. yml-aar баазаа зохион байгуулах төвөгтэй биш. Харин ч маш хялбар болгож өгч байгаа.
        paste хийгээд yml format чинь зөв бол doctrine:build –model geed , doctrine:build –sql eswe doctrine:build –all geed ugchih.

        хүмүүс ихэвчлэн netbeans хэрэглэгдэг, phpedit-г student эрхээр авахаар үнэгүй лицензтэй болдийн гэхдээ netbeans ч гэсэн маш сайн ашиглаад үзээрэй

  8. Бас нэг юм асуухан PHPedit crack -сан юм байна уу тэр чинь ядаж 30 хоногын трайл энэ тэр байдаггүй юм байна
    эсвэл та бүхэнд лицензтэй байна байвал нэг шэри хийгээд линкийг нь байршуулаач 🙂

    1. ctr + U daraad css ni bna uu uguig ni uz,

      tgd applicaton chin conf/view.yml dotor zaagdsan css -uud chin /web/css -ees default-r bgaa, eswel shuud <?php use_stylesheet('jobs.css'); ged tempalte hesegtee bicheed uz.

  9. php symfony doctine:build -model geheer

    The execution of task “doctrine:build&#8221; failed.
    – Too many arguments (“doctrine:build ûmodel&#8221; given).

    symfony doctrine:build [–application[=&#8221;…&#8221;]] [–env=&#8221;…&#8221;] [–no-confirmation]
    [–all] [–all-classes] [–model] [–forms] [–filters] [–sql] [–db] [–and-m
    igrate] [–and-load[=&#8221;…&#8221;]] [–and-append[=&#8221;…&#8221;]]

    iim aldaa garaad bhiin

      1. чи нэг зураастайгаар ажиллуулаад байгаан биш үү, буруу бичхээр чин ямар ямар option -тойг нь хэвлэнэ дээ уг нь. Хамгийн эхэнд гарсан шиг чинь

  10. Сайн байнуу Нэг юм гуйчих уу зав байвал Яаг энэ 3 дугаар өдрийн хичээлээ Видео болгоод тавиад өгөөч …Тэнгис шиг …жоохон даварчихвуу даа уучлаарай

  11. Сайн байна уу ? баазын холболтон дээр нэг ийм-> PDO Connection Error: SQLSTATE[HY000] [2002] No connection could be made because the target machine actively refused it. алдаа гараад байнаа туслаач бас нэг анхааруулга Warning: PDO::__construct(): [2002] No connection could be made because the target machine actively refused it.
    (trying to connect via tcp://localhost:3306) in C:\dev\sfprojects\jobeet\lib\vendor\symfony\lib\plugins\sfDoctrinePlugin\lib\vendor\doctrine\Doctrine\Connection.php on line 470
    уг нь Database.yml нь all:
    doctrine:
    class: sfDoctrineDatabase
    param:
    dsn: mysql:host=localhost;dbname=jobeet
    username: root
    password:
    ийм байгаа юм phpmyadmin jobeet баазаа үүсгэсэн.build schema команд л өгөөд байгаа юм даа

  12. symfony doctrine:buil –all -and-load –no blabal ene commandiig bicheer iim aldaa garad bhiin yundaa ve>

    unknown foreign key referentail action ‘CASECADE’ given

    aan tiin tegeed schema.yaml fixtures.yml ene file upload hiiged uguuch !!!!!

  13. Сайн байна уу ийм алдаа гараад байна модуль үүсэхгүй юм туслаач

    The execution of task “generate:module&#8221; failed.
    – Too many arguments (“generate:module frontend job Jobeet_Job&#8221; given).

    symfony generate:module application module

    1. generate:module frontend job гэсэл хоосон модуль үүснэ.

      харин doctrine:generate-module frontend job JobeetJob гэвэл JobeetJob гэсэн моделиор CRUD үйлдлүүдтэй модуль үүсгэнэ.

  14. Сайн уу ? дахиад асуух зүйл байнаа yaml file үүсгэх их хэцүү юм шигээ mysql-дээ төгсөрч байж дараа нь yaml file-ийг сурахгүй бол Symfony php-ийг үнэхээр сурмаар байна
    xampp-ийн phpmyadmin дээр баазаа үүсгээд анхны өгөгдөлөө оруулаад data load command өгөх үү ер нь тэгээд ямар ямар command хэрэглэх вэ ? модулаа үүсгэхэд categories.yml,jobs.yml file-ууд үүсгэх шаардлагатай юу?

    1. За чиний хувьд эхнээс нь явах гээд будлиад байгаа бололтой. Тэгэхээр yaml гэдэг формат бол indentation буюу таб буюу хоорондын хэмжээгээр нь тусгаарладаг формат. Бааздаа анхны өгөгдөл оруулахын тулд symfony doctrine:data-load командыг ажиллуулахаар jobs.yml categorie.yml файлууд дахь өгөгдлүүд автоматаар орчино. MySQL-д механикаар өгөгдөл оруулах албагүй. Гэхдээ бол болийшдээ, туршиж үзэж байж л сурна. Айсны хэрэггүй. OK амжилт!

  15. Сайн уу ? Би яг блогоо дуурайж хийхээр болсоон.Гэхдээ зарим нэг ойлгомжгүй алдаанууд гараад байнаа.Хүснэгүүд үүсгэх гээд doctrine:insert-sql command Parameter нь –no-confirmation өгөхлөөр (Netbeans ашиглаж байгаа)
    The execution of task “doctrine:insert-sql&#8221; failed.
    – The “–no-confirmation&#8221; option does not exist.

    symfony doctrine:insert-sql [–application[=&#8221;…&#8221;]] [–env=&#8221;…&#8221;]
    ийм алдаа гараад байна.Бас module нь үүссэн хэрнээ анхны өгөгдөлүүд нь ордогүй ээ мөн category унадаг цэснээс сонголт гарч ирэхгүй байхын

    1. Хэрвээ чамд command line бичихээр алдаа зааж байвал, тэр алдааны талаар help түлхүүр үгийг ашиглаад ямар ямар боломжуудтайг нь хараад сурчаарай. Жишээ нь: symfony help doctirine:insert-sql гэж бичээд юун дээр алдаснаа мэдээд авчиж болно. –no-confirmation сонголт зөвхөн build:all команд дээр байдаг санагдаж байна.

  16. Дахиад л нэг асуулт байнаа.Яаж хоёр project үүсгэх үү Virtualhost(apache),Windows host бүгдий нь яг л тохируулсан юм даа яг адилхан хуудас гарч ирээд байхийн Уг нь jobeet нь арай өөр байна биз дээ Гэтэл сүүлд үүсгэсэнд нь job favicon хүртэл орчихсон явахын
    virtual host-oo явуулчхий

  17. Эхнийх нь сурах гэж дараагийх нь өөрийхөөрөө зохиох гэж 2 project үүсгэх гээд байгаа юм л даа
    #
    # Virtual Hosts
    #
    # If you want to maintain multiple domains/hostnames on your
    # machine you can setup VirtualHost containers for them. Most configurations
    # use only name-based virtual hosts so the server doesn’t need to worry about
    # IP addresses. This is indicated by the asterisks in the directives below.
    #
    # Please see the documentation at
    #
    # for further details before you try to setup virtual hosts.
    #
    # You may use the command line option ‘-S’ to verify your virtual host
    # configuration.

    #
    # Use name-based virtual hosting.
    #
    NameVirtualHost 127.0.0.1:80

    #
    # VirtualHost example:
    # Almost any Apache directive may go into a VirtualHost container.
    # The first VirtualHost section is used for all requests that do not
    # match a ServerName or ServerAlias in any block.
    #

    ServerName jobeet.local
    DocumentRoot “C:\dev\sfprojects\jobeet\web&#8221;
    DirectoryIndex index.php

    AllowOverride All
    Allow from All

    Alias /sf C:\dev\sfprojects\jobeet\lib\vendor\symfony\data\web\sf

    AllowOverride All
    Allow from All

    ServerName jobeet.local
    DocumentRoot “C:\dev\sfprojects\eshop\web&#8221;
    DirectoryIndex index.php

    AllowOverride All
    Allow from All

    Alias /sf C:\dev\sfprojects\eshop\lib\vendor\symfony\data\web\sf

    AllowOverride All
    Allow from All

    ##
    ##ServerAdmin postmaster@dummy-host2.localhost
    ##DocumentRoot “/xampp/htdocs/dummy-host2.localhost&#8221;
    ##ServerName dummy-host2.localhost
    ##ServerAlias http://www.dummy-host2.localhost
    ##ErrorLog “logs/dummy-host2.localhost-error.log&#8221;
    ##CustomLog “logs/dummy-host2.localhost-access.log&#8221; combined
    ##

  18. Windowsiix ni
    # Copyright (c) 1993-2009 Microsoft Corp.
    #
    # This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
    #
    # This file contains the mappings of IP addresses to host names. Each
    # entry should be kept on an individual line. The IP address should
    # be placed in the first column followed by the corresponding host name.
    # The IP address and the host name should be separated by at least one
    # space.
    #
    # Additionally, comments (such as these) may be inserted on individual
    # lines or following the machine name denoted by a ‘#’ symbol.
    #
    # For example:
    #
    # 102.54.94.97 rhino.acme.com # source server
    # 38.25.63.10 x.acme.com # x client host
    # localhost name resolution is handled within DNS itself.
    127.0.0.1 jobeet.local
    127.0.0.1 eshop.local
    # ::1 localhost

    205.199.44.156 registeridm.com
    205.199.44.16 registeridm.com
    127.0.0.1 http://www.internetdownloadmanager.com

  19. Баярлалаа.дан php code яаж бичиж сурах вэ ? html form-ийг php хуудастай холбох гэхлээр алдаа гараад browser дээр баахан new tab циклдээд байхын php.ini файлдаа тохиргоо хийсэн л дээ надад Netbeans 7.0,xampp 2.5.8(version), php 5.3.6, Dreamweaver байгаа xampp php хоёрыг зэрэг суулгачихсан байгаа тэгэхгүй бол symfony command ажилахгүй байна лээ php.exe not recognized гээд ер нь хоеулангий нь зэрэг суулгаад юм хийж болдог юм уу

    1. 1. PHP -ын суурь мэдлэг хэрэгтэй бол
      ‘VISUAL QUICKPRO GUIDE
      PHP 5 ADVANC’VISUAL QUICKPRO GUIDE
      PHP 5 ADVANCED
      Larry Ullman’ ийм ном байгаа. Маш сайн ном.

      2. Сервер, хэрэгсэл энэ тэрээ салгаж ойлгох хэрэгтэй шүү. нетбейнс болон Дриймвэйвер 2 бол код бичихэд зориулсан хүчирхэг editor -ууд, сервертэй бол огт хамаагүй. Харин Apache бол сервер чинь. Тэгэхээр наад 2 editor-ууд чинь php-ын чинь Path-ыг мэдсэнээр командыг дотроосоо ажиллуулж боломжтой болдог гэсэн үг. Команд танихгүй байгаа нь php.exe файлын чинь зам буруу байна гэсэн үг.

    1. Зүгээр зүгээр.

      Зөвлөгөө: Өөрөө сайн оролдоод нэтээс ухаж, судлаад бүүр болохгүй, олдохгүй юм байвал асууж байвал зүгээр шүү. Тэрнээс биш шууд асуудал тулгарангуут нь асуугаад байвал чамд өөрт чинь хөгжихөд сул талтай байх.

  20. Hey erheme neg yum asuux gsiimaa symfony zaaval peareer suulgax shaardlaga bn yu miniix peareer suulgaxaar iim failed fopen(‘C:\Windows\pear.ini’,’w’) aldaa garj ireed bxiin.Tegexeer ni Netbeans deeree shuud symfony suulgax gj oroldson.tgxdee bas l suuj ogoxgvimaa.Virtual hostsiin l aldaa garaad bx shig bn

  21. Ийм алдаа гараад болдгүйэ. Уг нь YML-аа өөрөө сайн нягтлаад болохгүй болхоор нь чиний байрлуулсан файлыг хуулж тавиад үзсэн бас л болдгүйэ.

    PS C:\wamp\www\jobeet> php symfony doctrine:data-load
    >> doctrine Loading data fixtures from “C:\wamp\www\jobeet\data/fixtures&#8221;

    Couldn’t find class JobeetCategory

    PHP Fatal error: Call to a member function evictAll() on a non-object in C:\wamp\www\jobeet\lib\vendor\symfony\lib\plugins\sfDoctrinePlugin
    \lib\vendor\doctrine\Doctrine\Connection.php on line 1239

    Fatal error: Call to a member function evictAll() on a non-object in C:\wamp\www\jobeet\lib\vendor\symfony\lib\plugins\sfDoctrinePlugin\lib\
    vendor\doctrine\Doctrine\Connection.php on line 1239

    1. JobeetCategory гэсэн классыг олохгүй байна гэсэн алдаа байна. Class-ын чинь нэр буруу том жижиг үсэгний алдаа гарсан байж магадгүй. lib/model дотор JobeetCategory класс байгаа эсэхийг шалга.
      За Амжилт!

  22. Hi bi wamp suulgatsan bga tgd projectiin zam ni c:/wamp/www/jobeet.
    Tgd GIT eer jobeetiin director dotor orood umnuh alhmuudiig higed zuger yavj bsnaa ene command der

    $php symfony doctrine:build –model

    Invalid schema element named “design&#8221; at path “JobeetCategory&#8221;
    gsen aldaa garad yundaa bgan bol schema.yml iig shalgasan chine umnuh tei adilhan bnalee.

    1. schema.yml дээр JobeetCategory-ын доор “design&#8221; гэсэн танигдахгүй тохиргоо байх шиг байна даа. Indentation (yml- форматын үе ялгах зай) хоорондын зай энэ тэрийг нь дахиад нэг шалгаад үздээ.

  23. anhnaasaa schema.yml maani build hiigegui shig bna

    $php symfony doctrine:build-schema gsen chine

    PDO Connection Error: SQLSTATE[28000] [1045] Acess denied to ‘root’@’localhost’ (using password: YES)

    iim aldaa garad bna hehe

    1. Дээрх алдаа бол MySQL-ын чинь нууц үг нь таарахгүй юмуу, буруу болохоор баазтайгаа холбогдож чадахгүй болохоор гардаг алдаа. databases.yml дээрх тохиргоогоо шалга.

      Мөөгий, нэг юм дахин сануулъя “эхлээд өөрөө маш сайн оролдох&#8221; хэрэгтэй.
      Зүгээр нэг оролдоод болохгүй болохоор нь шууд асуугаад байвал чамд сурахад чинь муу шүү. Сайн оролдоод, за ёстой бүү мэд, хэн нэгний тусламж хэрэгтэй байна гэж үзвэл асууж байгаарай! 🙂

      Амжилт!

  24. giteer anhnasa projectoo suulgagui bolohor tiim aldaa garad bolj uguhgui bsan bna kk odoo

    $ php symfony doctrine:build –all –no-confirmation

    command ugsun chine couldn’t find class job_extreme_sensio

    gd jobs.yml categories.yml ees ugugdluu tatahgui bna yunih yum bol

  25. php symfony doctrine:build –all –no-confirmation –data-load gej bichwel buh class bolovsruulagdaj, sql-uud baaz ruu bichigdsenii daraa –data-load buyu tedgeer data/ folder dotorh yml-uudiig unshine. Tegeheer ehleed php symfony doctrine:build –model –forms –filters gej class-uudaa generate hiicheed, data file-uudaa dangaar ni php symfony doctrine:data-load command-g ajilluulaad haana ni aldaa bgaag olchih.

    Za amjilt!

    1. OK, Yamartai ch buh ym ajillah yostoigooroo ajillasan bol tegeed tsaashaa ywaad baigaarai. 7 honoson ch gesen daraa iimerhuu aldaa garahad meddeg boltson ym chin amjilt ruu neg alham oirtoo l gej med.

      Good luck!

  26. Yaml-uudiig tataj avsan phpMyAdmin deeree jobeet database vvsgetsen Xarin ter tataj avsan yamluudaa xaana xuulj ogox yum bee tgd ajilluulax command ni yu yum bolchixson neg ni xariulj tus bolooch

  27. BI Windows Os deer wamp NetBeans ashiglaj bga Symfony surax gd l exelj bn Asuux yum garval asuuna shvv Erhemee hehe tgxdee ooroo oroldood boloxgvi yumaa l asuuna.Za tgd tusalj demjeerai all

  28. C:\wamp\www\jobeet>symfony doctrine:insert-sql -no-confirmation
    The execution of task “doctrine:insert-sql&#8221; failed.
    – Too many arguments (“doctrine:insert-sql ûno-confirmation&#8221; given).
    symfony doctrine:insert-sql [–application[=&#8221;…&#8221;]] [–env=&#8221;…&#8221;]

    IIm Aldaa zaagaad bxiin deerx commandiig ajilluulaxaar

  29. bi neg l vvsgej chdhgvi bnda yahu ho windows dr hj bgan yah yostoi we alda garad bhin
    The execution of task “doctrine:build&#8221; failed.
    – Too many arguments (“doctrine:build php symfony doctrine:build&#8221; given).

    symfony doctrine:build [–application[=&#8221;…&#8221;]] [–env=&#8221;…&#8221;] [–no-confirmation] [–all] [–all-classes] [–model] [–forms] [–filters] [–sql] [–db

    1. sain shalgaa. command-aa bichihdee buruu bichsen bna. php symfony doctrine:build –all –no-confirmation gwel schema.yml-s buh class-file-uudiig lib dotor uusgeed, mun baas ruu hurwuulne. Sain oroldoh heregtei,

      Amjilt!

  30. >> doctrine Dropping “doctrine&#8221; database
    >> doctrine Creating “dev&#8221; environment “doctrine&#8221; database
    >> doctrine generating model classes

    Unable to parse file “C:/Program Files/wamp/www/Auhaan/config/doctrine/schema.yml&#8221;: Malformed inline YAML string { onDelete: CASCADE, local: category_id, foreign: id,

    1. Ene aldaa bol schema.yml -file-iin format-g buruu bichsen bolohoor gardiin. ene tendees copy tawih tohioldold format-iin indentation buyu 4hooson zai awdagiig martaj bolohgui. Yag { onDelete: CASCADE, local: category_id, foreign: id, mur deer formatiin aldaa bna. teriig sain shalga.

Leave a reply to erheme318 Хариулт болиулах