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
Ce tag se foloseste pentru a adauga liste in elemente <ul> si <ol>?
<dt> <dd> <li>
<ul>
 <li>http://coursesweb.net/html/</li>
 <li>http://www.marplo.net/html/</li>
</ul>
Care valoare a proprietatii "display" seteaza elementul ca tip bloc si afiseaza un punct in fata?
block list-item inline-block
.some_class {
  display: list-item;
}
Care instructiune JavaScript transforma un obiect in sir JSON.
JSON.parse() JSON.stringify eval()
var obj = {
 "courses": ["php", "javascript", "ajax"]
};
var jsonstr = JSON.stringify(obj);
alert(jsonstr);    // {"courses":["php","javascript","ajax"]}
Indicati clasa PHP folosita pentru a lucra cu elemente HTML si XML in PHP.
stdClass PDO DOMDocument
$strhtml = '<body><div id="dv1">CoursesWeb.net</div></body>';
$dochtml = new DOMDocument();
$dochtml->loadHTML($strhtml);
$elm = $dochtml->getElementById("dv1");
echo $elm->nodeValue;    // CoursesWeb.net
Indicati forma de Prezent Continuu a verbului "to live" (a trai /a locui)
lived living liveing
I`m living here.
- Traiesc /Locuiesc aici.
Care este forma de Gerunziu (sau Participiu Prezent) a verbului "vivir" (a trai /a locui)?
viviĆ³ vivido viviendo
Estoy viviendo aquĆ­.
- Traiesc /Locuiesc aici.
Laravel Requests - Cereri HTTP

Last accessed pages

  1. Creion si Stilou (359)
  2. Alphabet and Pronunciation - Alfabetul si pronuntia in limba engleza (59975)
  3. Gramatica limbii engleze - Prezentare Generala (215262)
  4. Utilizare formulare HTML cu PHP, $_GET si $_POST (4926)
  5. Articolul din limba engleza - The article (69441)

Popular pages this month

  1. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (678)
  2. Coduri pt culori (303)
  3. Exercitii engleza - English Tests and exercises - Grammar (302)
  4. Gramatica limbii engleze - Prezentare Generala (296)
  5. Cursuri limba engleza gratuite si lectii online (272)