ccc

Laravel: Formularios

En routes/web.php:
Route::get('insert','ClientesInsertController@insertform');
Route::post('create','ClientesInsertController@insert');

Ejecutar desde la consola:
php artisan make:controller ClientesInsertController

En app/Http/Controllers/ClientesInsertController.php:
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use DB;
use Validator;

class ClientesInsertController extends Controller
{
    public function insertform(){
        return view('clientes_create');
    }

    public function insert(Request $request){
        $validator = Validator::make($request->all(), [
            'nombre_cliente' => 'required',
        ]);


        if ($validator->fails()) {
            return redirect('insert')
                ->withErrors($validator)
                ->withInput();
        }

        $nombre_cliente = $request->input('nombre_cliente');
        DB::insert('insert into clientes (nombre_cliente) values(?)',[$nombre_cliente]);
        echo "Dado de alta correctamente<br/>";
        echo '<a href = "./insert">Pulsa aquí</a> para añadir otro';
    }
}

Crear la vista resources/views/clientes_create.blade.php:
<form action = "./create" method = "post">
    <input type = "hidden" name = "_token" value = "<?php echo csrf_token(); ?>">

    <table>
        <tr>
            <td>Nombre</td>
            <td><input type='text' name='nombre_cliente' /></td>
        </tr>
        <tr>
            <td colspan = '2'>
                <input type = 'submit' value = "Dar alta cliente"/>
            </td>
        </tr>
        <tr><td>
                @if (count($errors) > 0)
                    <div class="alert alert-danger">
                        <ul>
                            @foreach ($errors->all() as $error)
                                <li>{{ $error }}</li>
                            @endforeach
                        </ul>
                    </div>
                @endif
            </td></tr>
    </table>

</form>

No hay comentarios:

Publicar un comentario