ejecutar en alguna consola cliente de base de datos:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '<roots-password>' WITH GRANT OPTION;
yii2 quitar index.php de la url
crear un archivo llamado .htaccess en la raiz del proyecto con el sgt contenido:
RewriteEngine on
# If a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Otherwise forward it to index.php
RewriteRule . index.php
en config/web.php agregar:
'urlManager' => [
'class' => 'yii\web\UrlManager',
'showScriptName' => false,
'enablePrettyUrl' => true,
'rules' => array(
'<controller:\w+>/<id:\d+>' => '<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
'<controller:\w+>/<action:\w+>' => '<controller>/<action>',
),
],
RewriteEngine on
# If a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Otherwise forward it to index.php
RewriteRule . index.php
en config/web.php agregar:
'urlManager' => [
'class' => 'yii\web\UrlManager',
'showScriptName' => false,
'enablePrettyUrl' => true,
'rules' => array(
'<controller:\w+>/<id:\d+>' => '<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
'<controller:\w+>/<action:\w+>' => '<controller>/<action>',
),
],
yii2 agregar orden por default a GridView
$dataProvider->sort = ['defaultOrder' => ['id' => 'DESC']];
yii2 como agregar asterisco campos requeridos en formulario
en site.css
agregar
agregar
form div.required label.control-label:after { content:" * "; color:red; }
yii2 como sacar el web de la url
copie el contenido de la carpeta web a la raiz del proyecto
en index.php actualice los links
en index.php actualice los links
<?php defined('YII_DEBUG') or define('YII_DEBUG', false); defined('YII_ENV') or define('YII_ENV', 'dev'); require(__DIR__ . '/../vendor/autoload.php'); require(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php'); $config = require(__DIR__ . '/../config/web.php'); (new yii\web\Application($config))->run();
por:
<?php defined('YII_DEBUG') or define('YII_DEBUG', false); defined('YII_ENV') or define('YII_ENV', 'dev'); require(__DIR__ . '/vendor/autoload.php'); require(__DIR__ . '/vendor/yiisoft/yii2/Yii.php'); $config = require(__DIR__ . '/config/web.php'); (new yii\web\Application($config))->run();
yii2 guardar modelos y sus relaciones
vamos a usar la siguiente extension
https://packagist.org/packages/la-haute-societe/yii2-save-relations-behavior
la descargamos usando composer
https://packagist.org/packages/la-haute-societe/yii2-save-relations-behavior
la descargamos usando composer
composer require --prefer-dist la-haute-societe/yii2-save-relations-behavior "*"
en mi caso tengo 2 clases una Grupo e Item, donde
un grupo tiene muchos items y cada item pertenece a un solo grupo.
editamos el modelo de Grupo
use lhs\Yii2SaveRelationsBehavior\SaveRelationsBehavior;
class Grupo extends \yii\db\ActiveRecord
{
public function behaviors()
{
return [
'saveRelations' => [
'class' => SaveRelationsBehavior::className(),
'relations' => ['items']
],
];
}
yii2 usando composer
1) descargar e instalar composer para windows
https://getcomposer.org/download/
2) agregar en las variables de entorno PATH
la carpeta donde se guardó composer.phar
usalmente será: C:\ProgramData\ComposerSetup\bin
3) instalando un widget
por ejemplo el multiselect
https://github.com/2amigos/yii2-multi-select-widget
en el readme dice que en la carpeta root del proyecto por consola tiremos este comando
https://getcomposer.org/download/
2) agregar en las variables de entorno PATH
la carpeta donde se guardó composer.phar
usalmente será: C:\ProgramData\ComposerSetup\bin
3) instalando un widget
por ejemplo el multiselect
https://github.com/2amigos/yii2-multi-select-widget
en el readme dice que en la carpeta root del proyecto por consola tiremos este comando
php composer.phar require 2amigos/yii2-multi-select-widget "*"
pero vamos a usar
composer require 2amigos/yii2-multi-select-widget "*"
esta será la salida
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Reading bower.json of bower-asset/jquery (1.10.0)
Could not fetch https://api.github.com/repos/jquery/jquery-dist/contents/bower.j
son?ref=2c62b787b2cafb32af14edadc963b8ba3cb847b8, please create a GitHub OAuth t
oken to go over the API rate limit
Head to https://github.com/settings/tokens/new?scopes=repo&description=Composer+
on+CGWKS588+2016-08-18+2213
to retrieve a token. It will be stored in "C:/Users/ibazan/AppData/Roaming/Compo
ser/auth.json" for future use by Composer.
Token (hidden):
copiar la url que nos indican (
https://github.com/settings/tokens/new?scopes=repo&description=Composer+ on+CGWKS588+2016-08-18+2213
) ingresar con nuestro usuario de github y obtener el token, pegarlo (no se verá) y darle enter
para que continue con la bajada de archivos
Token stored successfully.
- Installing 2amigos/yii2-multi-select-widget (0.1.1)
Downloading: 100%
Writing lock file
Generating autoload files
yii 2 empezando
1) instalarlo via composer o descargar el zip con la ultima version.
http://www.yiiframework.com/download/
en el zip al descomprimir hay una carpeta llamada basic, cambiarle el nombre al de tu proyecto y colocarlo en una carpeta de publicacion web.
xampp/htdocs
entrar a web.php y escribir un numero de clave cualquiera
2) conectarse a la bd
en web/config.db
3) generar codigo con gii
http://localhost/economy-admin/web/index.php?r=gii
( en las secciones de model generator y crud generator tildar las opcion de i18n )
4) habilitar i18n:
en la carpeta del proyecto por linea de comando
http://www.yiiframework.com/download/
en el zip al descomprimir hay una carpeta llamada basic, cambiarle el nombre al de tu proyecto y colocarlo en una carpeta de publicacion web.
xampp/htdocs
entrar a web.php y escribir un numero de clave cualquiera
config/web.php
'cookieValidationKey' => 'enter your secret key here',
2) conectarse a la bd
en web/config.db
3) generar codigo con gii
http://localhost/economy-admin/web/index.php?r=gii
( en las secciones de model generator y crud generator tildar las opcion de i18n )
4) habilitar i18n:
en la carpeta del proyecto por linea de comando
yii
message
/config
@app
/config/i18n
.php
esto creará el archivo i18n.php en config
se puede editar las sgts entradas del archivo para volver a generar las carpetas con los archivos de idiomas
(por default ya vienen en vendor/yiisoft/yii2/messages)
...
'sourcePath' => __DIR__. DIRECTORY_SEPARATOR .'..',
'messagePath' => __DIR__ . DIRECTORY_SEPARATOR . 'messages',
'languages'
=> [
'es'
],
...
(en este caso le estamos diciendo que los genere dentro de la carpeta config/messages, que debemos crear previamente)
en la carpeta por linea de comando:
yii
message
/extract
@app
/config/i18n
.php
luego editar config/web.php
y agregar la sgt linea
'language'=>'es', // spanish
esto generará 2 archivos en la carpeta messages/es:
yii.php con las entradas comunes a todo el proyecto
app.php con las entradas particulares del proyecto como las labels de los modelos.
[no tengo manera de que lea las entradas de t('app','xxx xxx') BUG]
git repositorio remoto
1) crear un repositorio remoto en github
https://github.com
loguearte
y hacer click en el "+" del extremo superior derecho
seguir los pasos correspondientes.
en mi caso cree uno llamado webazan que tiene la sgt url
https://github.com/israelbazan76/webazan.git
2) agregar elrepositorio remoto
git remote add origin https://github.com/israelbazan76/webazan.git
3) ahora ya podemos enviar nuestros commits al servidor remoto.
The name of our remote is
8) si haces algun cambio en un archivo y quieres ver la diferencia con el que está en tu repo local
usa
C:\Users\ibazan\test-git-1>git diff head
diff --git a/webazan/view.php b/webazan/view.php
index e463698..14bc399 100644
--- a/webazan/view.php
+++ b/webazan/view.php
@@ -2,7 +2,7 @@
/* @var $this UsersController */
/* @var $model Users */
-/**holaaaaaaaaaaaaaaa**/
+/**holaaaaaaaaaaaaaaa chauuuuuuuuuuuuuu**/
?>
en el ejemplo se agregó "chauuuuuuuuuuuuuu"
entonces, luego de add y commit git diff head no devolverá nada (el archivo será el mismo no habiendo ninguna diferencia)
https://github.com
loguearte
y hacer click en el "+" del extremo superior derecho
seguir los pasos correspondientes.
en mi caso cree uno llamado webazan que tiene la sgt url
https://github.com/israelbazan76/webazan.git
2) agregar elrepositorio remoto
git remote add origin https://github.com/israelbazan76/webazan.git
3) ahora ya podemos enviar nuestros commits al servidor remoto.
The name of our remote is
origin
and the default local branch name is master
. The -u
tells Git to remember the parameters,
so that next time we can simply run git push
(nos va a aparecer un popup para loguearnos al github por unica vez)
git push -u origin master
(al crear nuestro repositorio remoto nos indican que creemos un readme https://help.github.com/articles/create-a-repo/ lo que provocara que no podamos hacer el push, entonces vamos a mofificar el comando agregando el parametro -f para forzar el push)
git push -f origin master
Counting objects: 8, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (7/7), done.
Writing objects: 100% (8/8), 2.25 KiB | 0 bytes/s, done.
Total 8 (delta 1), reused 0 (delta 0)
To https://github.com/israelbazan76/webazan.git
+ 0b296cd...627080b master -> master (forced update)
4) si agregamos un nuevo archivo luego de agregarlo a nuestro master local con git add "*.php"
y lo commiteamos con git commit -m "algun comentario"
ya lo podremos pushear asi:
git push origin master
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 682 bytes | 0 bytes/s, done.
Total 3 (delta 1), reused 0 (delta 0)
To https://github.com/israelbazan76/webazan.git
627080b..4613798 master -> master
5) si agregamos al stage
git add "datos.sql"
lo podemos quitar del stage
git reset datos.sql
6) para regresar todo lo local al estado del ultimo commit
git checkout -- datos.sql
7) si en una carpeta iniciada en git (git init) clonamos un repo remoto (git clone
https://github.com/israelbazan76/webazan.git
) para poder pushear debemos hacer todo el proceso de add y commit que conocemos.
no solo eso sino que ademas debemos linkear la carpeta con el repo (
git remote add origin https://github.com/israelbazan76/webazan.git) asi le asigna el nombre por default de "origin" y pullear con el parametro que permite mergear las historias no relacionadas (git pull origin master --allow-unrelated-histories) calculo que es por el "readme" que no se clona
8) si haces algun cambio en un archivo y quieres ver la diferencia con el que está en tu repo local
usa
C:\Users\ibazan\test-git-1>git diff head
diff --git a/webazan/view.php b/webazan/view.php
index e463698..14bc399 100644
--- a/webazan/view.php
+++ b/webazan/view.php
@@ -2,7 +2,7 @@
/* @var $this UsersController */
/* @var $model Users */
-/**holaaaaaaaaaaaaaaa**/
+/**holaaaaaaaaaaaaaaa chauuuuuuuuuuuuuu**/
?>
en el ejemplo se agregó "chauuuuuuuuuuuuuu"
entonces, luego de add y commit git diff head no devolverá nada (el archivo será el mismo no habiendo ninguna diferencia)
Suscribirse a:
Entradas (Atom)
linux ubuntu mint actualizar chrome
desde una terminal: $ sudo apt update $ sudo apt install google-chrome-stable
-
por consola y desde la raiz de tu proyecto php artisan --version
-
en nuestro proyecto creamos una carpeta llamada donde estaran todas nuestras clases, por ejemplo una llamada: MiApp adentro de esta irian b...
-
Integridad al nivel de la base de datos Oracle Oracle valida la integridad de la base de datos y presenta los siguientes mensajes de erro...