Curs Php-mysql

- Preluare date din formular

Pentru a obtine o instanta a HTTP accesarii curente intr-un controller, se foloseste clasa Illuminate\Http\Request in controller si parametrul Request $request in metoda controller-ului.
Daca metoda controller foloseste si date de la parametri Route, se adauga parametri route dupa parametrul $request.
- De exemplu, daca un route "test" este definit asa:
Route::name('test')->get('test/{id}', 'TestController@index');
O clasa TestController intr-un fisier "TestController.php" (in directorul app/Http/Controllers/ ) ar arata asa:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;

class TestController extends Controller {

  //Responds to requests to /test
  //receives the $request instane, $id from URI
  //returns view() response
  public function index(Request $request, $id){
    return view('test');
  }
}

Metode si adrese Request

Obiectul $request furnizeaza o varietate de metode pentru examinarea cererii HTTP.
Vezi pagina aceasta pentru o lista completa cu Metode Request

- Exemplu:
1. Adauga urmatorul cod in fisierul "TestController.php":
namespace App\Http\Controllers;
use Illuminate\Http\Request;

class TestController extends Controller {

  //Responds to requests to /test
  //receives the $request instance, $id from URI
  //returns view() response
  public function index(Request $request, $name=''){
    //Usage of is() method
    $is_uri = $request->is('test/*');

    //set array with keys to be passed to view() for template
    $data =[
      'name'=>$name,
      'uri'=>$request->path(),
      'url'=>$request->url(),
      'is_uri'=>$is_uri ?'URI matches the "test/*" pattern' :'URI not matches the "test/*" pattern',
      'method'=>$request->method()
    ];

    return view('test', $data);
  }
}
2. Adauga urmatorul cod in fisierul "test.blade.php" (in directorul "resources/views/"):
<!doctype html>
<html lang="{{app()->getLocale()}}">
<head>
<meta charset="utf-8">
<title>Test Page</title>
</head>
<body>
<h1>Test page</h1>
NAME ARGUMENT: {{$name}}<br>
URI: {{$uri}}<br>
URL: {{$url}}<br>
METHOD: {{$method}}<br>
is() METHOD: {{$is_uri}}
</body>
</html>
3. Adauga urmatoarea linie in fisierul"routes/web.php":
Route::name('test_pg')->get('/test/{name?}', 'TestController@index');
4. Viziteaza URL-ul de mai jos:
//localhost:8000/test/peace
- Rezultatul va fi ca in imaginea urmatoare.
laravel request path methods

Preluare date din formular

Indiferent ce metoda a fost folosita, GET sau POST, obiectul $request va return valorile input pentru ambele metodele in acelasi fel. Poti prelua datele din formular folosind oricare din variatele:

Verificare daca o valoare Input este prezenta

Este indicat sa folositi metoda has() pentru a verifica daca un anume camp de formular este prezent in cerere.
Metoda has() returneaza true daca valoarea este prezenta:
if($request->has('name')){
  //
}
Cand este dat un array, metoda has() va determina daca toate valorile specificate sunt prezente:
if($request->has(['name', 'email'])){
  //
}

- Exemplu:
1. Adauga urmatorul cod in fisierul "TestController.php" (in directorul app/Http/Controllers/):
namespace App\Http\Controllers;
use Illuminate\Http\Request;

class TestController extends Controller {

  //Responds to requests to /test
  //receives the $request instance, $id from URI
  //returns view() response
  public function index(Request $request, $name=''){
    //Usage of is() method
    $is_uri = $request->is('test/*');

    //set array with keys to be passed to view() for template
    $data =[
      'name'=>$name,
      'uri'=>$request->path(),
      'url'=>$request->url(),
      'is_uri'=>$is_uri ?'URI matches the "test/*" pattern' :'URI not matches the "test/*" pattern',
      'method'=>$request->method()
    ];

    return view('test', $data);
  }

  //Responds to post requests to /user/register
  //receives the $request instance
  //outputs input fields data, or message
  public function userRegister(Request $request){
    //if required fields are received, and not empty
    if($request->has(['name', 'username', 'password']) && $request->name!=null && $request->username!=null && $request->password!=null){
      //Retrieve the name input field
      $name = $request->input('name');
      echo 'Name: '.$name .'<br>';

      //Retrieve the username input field
      $username = $request->username;
      echo 'Username: '.$username .'<br>';

      //Retrieve the password input field
      $password = $request->password;
      echo 'Password: '.$password;
    }
    else echo 'Please fill all the form fields';
  }
}
2. Creaza un fisier "register_form.blade.php" in directorul "resources/views/", cu acest cod:
<form method="post" action="/user/register">
{{ csrf_field() }}
<label>Name: <input type='text' name='name'/></label><br>
<label>Username: <input type='text' name='username'/></label><br>
<label>Password: <input type='password' name='password'/></label><br>
<input type='submit' value='Register'/>
</form>
Afirmatia {{ csrf_field() }} adauga un camp input "ascuns" in formular. Campul contine "codul" CSRF care este generat automat de framework-ul Laravel pentru a proteja aplicatia de atacuri cross-site request forgery (CSRF).
Se foloseste: {{ csrf_field() }} pentru a include un camp cu codul CSRF in fiecare formular pentru ca middleware-ul pentru protectie CSRF sa poata valida request-ul.
3. Adauga urmatorul cod in fisierul "routes/web.php":
//shows the register form
Route::get('/register',function(){
  return view('register_form');
});

//when the register form is submited
Route::post('/user/register', 'TestController@userRegister');
4. Viziteaza urmatorul URL si adauga date in campurile formularului:
//localhost:8000/register
- Va afisa o pagina ca aceasta:
laravel request test register
5. Apasa butonul Register, va deschide o pagina cu detaliile de inregistrare a utilizatorului, cum se vede in imaginea urmatoare:
laravel request user data

- Documentatie: Laravel - Requests

Un Test simplu in fiecare zi

HTML
CSS
JavaScript
PHP-MySQL
Engleza
Spaniola
Care tag e folosit pentru a adauga liste cu definitii in element <dl>?
<dt> <dd> <li>
<dl>
 <dt>HTML</dt>
  <dd> - Hyper Text Markup Language</dd>
  <dd> - Limbaj de cod pentru pagini web</dd>
</dl>
Care proprietate CSS poate sa ascunda un element in pagina, lasand spatiu gol in locul lui?
display position visibility
#id {
  visibility: hidden;
}
Indicati evenimentul declansat cand se apasa clic pe un obiect in pagina.
onclick onmouseover onfocus
document.getElementById("id").onclick = function(){
  alert("http://www.MarPlo.net/");
}
Indicati variabila PHP ce contine datele din $_GET, $_POST si $_COOKIE.
$_SESSION $_GET $_REQUEST
if(isset($_REQUEST["id"])) {
  echo $_REQUEST["id"];
}
Care din urmatoarele cuvinte reprezinta un Verb?
lighting believe path
I believe in my path.
- Eu cred in calea mea.
Care din urmatoarele cuvinte reprezinta un Verb?
creer camino iluminaciĆ³n
creer = a crede; camino = cale /drum; iluminaciĆ³n = iluminare
Laravel Requests - Cereri HTTP

Last accessed pages

  1. Accentul si Pronuntia (27137)
  2. Articole definite si nedefinite 1 (5662)
  3. Subtantive - Plural (5753)
  4. Genul substantivelor 2 (6810)
  5. Lucru cu XML - modelul DOM (684)

Popular pages this month

  1. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (701)
  2. Gramatica limbii engleze - Prezentare Generala (380)
  3. Exercitii engleza - English Tests and exercises - Grammar (355)
  4. Gramatica limbii spaniole. Indrumator si prezentare generala (305)
  5. Cursuri limba engleza gratuite si lectii online (272)