Laravel: Difference between revisions

From Adam Colton
Jump to navigation Jump to search
No edit summary
Line 50: Line 50:
Authorize returns a bool.
Authorize returns a bool.


If validation fails, it's redirected back to the previous page.
If validation fails, it's redirected back to the previous page with $errors populated with proper errors.
 
Form requests are implemented with type hinting on the controller.
Form requests are implemented with type hinting on the controller.


The controller method looks like this:
The controller method looks like this:
   public function someMethod(SomeRequest $request){
   public function someMethod(SomeRequest $request){
    Model::create(request->all());
    return redirect('someplace');
  }
=== Direct Validation ===
Rather than creating a form request, we can do this
  public function someMethod(Request $request){
    $this->validate($request, ['title' => 'required|min:3']);
     Model::create(request->all());
     Model::create(request->all());
     return redirect('someplace');
     return redirect('someplace');
   }
   }

Revision as of 00:00, 22 January 2016

Implicit Route Binding

From this video

 Route::get('users/{user}', function(App\User $user){
   return $user;
 });

If the arg name matches the token, it will magic that value into place. With the type hinting, it will find a user with the primary key given in the url.

To use something other than the primary key, you have to add a route binding in RouteServiceProvider.

Auth

Video

 php artisan make:auth

Creates a bunch of views, routes and adds a controller.

Email

Easiest is to use 'sendmail'. Make sure to set 'from' in config/mail.php.

Homestead

I'll need to try setting up a homestead instance on AWS with Vagrant. Could be useful to know for other projects too.

Illuminate/html

 composer require illuminate/html

Then in config/app.php, add 'Illuminate\Html\HtmlServiceProvider' to the providers array and 'Form' => 'Illuminate\Html\FormFacade' to the aliases array.

This seems to be the most up-to-date documentation.

Request

 $input = Request::all();
 $foo = Request::get('foo');

Gets all inputs from get and post.

Good shorthand

 $input = Request::all();
 SomeModel::create($input);

Eloquent

The $fillable property limits which properties can be assigned.

Form Requests

 php artisan make:requestion NameOfRequest

Starts with the methods authorize and rules.

Rules returns an array of fields and their validation logic.

Validators

  • required
  • min:n
  • date

Authorize returns a bool.

If validation fails, it's redirected back to the previous page with $errors populated with proper errors.

Form requests are implemented with type hinting on the controller.

The controller method looks like this:

 public function someMethod(SomeRequest $request){
   Model::create(request->all());
   return redirect('someplace');
 }


Direct Validation

Rather than creating a form request, we can do this

 public function someMethod(Request $request){
   $this->validate($request, ['title' => 'required|min:3']);
   Model::create(request->all());
   return redirect('someplace');
 }