- Índice
- 1) Iniciación a PHP 7
- 2) Operadores en PHP 7
- 3) Instrucciones en PHP 7
- 4) Funciones en PHP 7
- 5) Procesado de formularios con PHP 7
- 6) Bases de Datos MySQL en PHP 7
- 6.1) Crear la base de datos y tabla MySQL en PHP 7
- 6.2) Conectarse a la Base de Datos de MySQL en PHP 7
- 6.3) Consultas a la Base de Datos MySQL en PHP 7
- 6.4) Insertar registros a la Base de Datos MySQL en PHP 7
- 6.5) Actualizar registros de Base de Datos MySQL en PHP 7
- 6.6) Borrar registros de la Base de Datos MySQL en PHP 7
- 7) Sesiones en PHP 7
- 8) Cookies en PHP 7
- 9) Expresiones regulares EE.RR en PHP 7
- 10) PHP 7 Orientado a Objetos
- Blog
- Auto Test de Evaluación de PHP 7
- ¿Quiénes somos?
Crud con Laravel 5: Create
- Escrito por el staff
- El día octubre 30, 2015
- Desarrollo, FrameWorks, Laravel, PHP
- Comentarios desactivados en Crud con Laravel 5: Create
En esta primera ocasión vamos a crear el formulario desde donde podremos crear posts, cómo ya sabemos en Laravel 5 cambian bastantes cosas, y aquí veremos muchas de ellas para poder disipar dudas, espero que te guste y te sea útil.
Colócate en el directorio donde desees tener tu proyecto desde la terminal y escribe el siguiente comando, si no tienes Laravel 5 instalado te recomiendo este tutorial.
laravel new crud
APP_ENV=local APP_DEBUG=true APP_KEY=eYIGjwZ4xEepwIFVZF4EcIYSGWnvRBOv DB_HOST=localhost DB_DATABASE=laracrud DB_USERNAME=root DB_PASSWORD= CACHE_DRIVER=file SESSION_DRIVER=file QUEUE_DRIVER=sync MAIL_DRIVER=smtp MAIL_HOST=mailtrap.io MAIL_PORT=2525 MAIL_USERNAME=null MAIL_PASSWORD=null
Ahora vamos a crear el modelo Post, de esta forma también se creará nuestra migración, así que ejecuta el siguiente comando en la terminal.
php artisan make:model Post
<?php use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration; class CreatePostsTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('posts', function(Blueprint $table) { $table->increments('id'); $table->string('title'); $table->text('body'); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::drop('posts'); } }
php artisan migrate
php artisan make:controller PostController
"illuminate/html": "5.*"
composer update
'Illuminate\Html\HtmlServiceProvider',
'Html' => 'Illuminate\Html\HtmlFacade', 'Form' => 'Illuminate\Html\FormFacade',
php artisan make:request PostForm
<?php namespace App\Http\Requests; use App\Http\Requests\Request; class PostForm extends Request { /** * Determine if the user is authorized to make this request. * * @return bool */ public function authorize() { return false; } /** * Get the validation rules that apply to the request. * * @return array */ public function rules() { return [ // ]; } }
<?php namespace App\Http\Requests; use App\Http\Requests\Request; class PostForm extends Request { /** * Determine if the user is authorized to make this request. * * @return bool */ public function authorize() { return true; } /** * Get the validation rules that apply to the request. * * @return array */ public function rules() { return [ "title" => "required|min:5|max:45", "body" => "required|min:5|max:500" ]; } public function messages() { return [ 'title.required' => 'El campo title es requerido!', 'title.min' => 'El campo title no puede tener menos de 5 carácteres', 'title.min' => 'El campo title no puede tener más de 45 carácteres', 'body.required' => 'El campo body es requerido!', 'body.min' => 'El campo body no puede tener menos de 5 carácteres', 'body.min' => 'El campo body no puede tener más de 500 carácteres', ]; } }
Ahora debemos rutear el controlador PostController desde nuestro archivo routes.php alojado en el directorio app/Http, así que añade el siguiente código.
Route::resource('post', 'PostController');
Vamos a empezar por lo más sencillo, el modelo Post que está alojado en el directorio app por defecto, ábrelo y modifica el código para que quede de la siguiente forma.
<?php namespace App; use Illuminate\Database\Eloquent\Model; class Post extends Model { protected $table = 'posts'; protected $fillable = ['title', 'body']; protected $guarded = ['id']; }
En Laravel 5 al igual que en versiones anteriores los controladores restful ya definen para que sirve cada método, para mostrar el formulario para crear nuevos posts es el método create, así que abre el controlador PostController y agrega la siguiente porción al método create.
/** * Show the form for creating a new resource. * * @return Response */ public function create() { return view("posts.create"); }
@extends('app') @section('content') <div class="container"> <div class="row"> <div class="col-md-10 col-md-offset-1"> <div class="panel panel-default"> <div class="panel-heading">Home</div> @if($errors->has()) <div class='alert alert-danger'> @foreach ($errors->all('<p>:message</p>') as $message) {!! $message !!} @endforeach </div> @endif @if (Session::has('message')) <div class="alert alert-success">{{ Session::get('message') }}</div> @endif <div class="panel-body"> {!! Form::open(['route' => 'post.store']) !!} <div class="form-group"> {!! Form::text('title', null, ["class" => "form-control"]) !!} </div> <div class="form-group"> {!! Form::textarea('body', null, ['class'=>'form-control', 'placeholder'=>'Body']) !!} </div> <div class="form-group"> {!! Form::submit('Send', ["class" => "btn btn-success btn-block"]) !!} </div> {!! Form::close() !!} </div> </div> </div> </div> </div> @endsection
Volviendo al controlador PostController lo primero que debemos hacer es incluir el formRequest que hemos creado para nuestro formulario al principio de la clase.
use App\Http\Requests\PostForm;
/** * Store a newly created resource in storage. * * @return Response */ public function store(PostForm $postForm) { $post = new \App\Post; $post->title = \Request::input('title'); $post->body = \Request::input('body'); $post->save(); return redirect('post/create')->with('message', 'Post saved'); }
Si ahora te diriges a la ruta post/create verás el formulario, y si lo envías con los campos vacíos verás los errores de validación que hemos creado, en cambio, si llenas los campos y lo envías verás un mensaje conforme todo ha ido bien.
Espero que te haya gustado y si es así te agradezco que compartas mi trabajo en las redes sociales.
Si tuviste alguna duda no dudes en dejarnos tus comentarios y en breve nuestro staff te apoyará.
No se encontró contenido relacionado
Comentarios
Patrocinadores
Entradas recientes
- Cómo arreglar el error de MySQL: Too Many Connections
- Corregir error PHP Warning: Creating default object from empty value in /wp-admin/includes/post.php on line xxx
- Mac OS X ¿Qué es Homebrew? ¿Para qué sirve? ¿De dónde viene su nombre?
- Borrar todos los archivos .DS_Store y Thumbs.db en terminal MAC OS X Cheetah, Puma, Jaguar, Panther, Tiger, Leopard, Snow Leopard, Lion, Mountain Lion, Mavericks, Yosemite, El Capitan, Sierra y High Sierra
- Curso CRUD Laravel 5 en 4 capítulos