{"id":23842,"date":"2021-05-07T16:41:00","date_gmt":"2021-05-07T13:41:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=23842"},"modified":"2021-10-17T21:13:05","modified_gmt":"2021-10-17T18:13:05","slug":"parempi-tapa-luoda-laravel-ohjain-crud-operaatioita-varten","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/fi\/parempi-tapa-luoda-laravel-ohjain-crud-operaatioita-varten\/","title":{"rendered":"Parempi tapa luoda Laravel-ohjain CRUD-operaatioita varten"},"content":{"rendered":"<p>Laravel toimii MVC (Model-View-Controller) -arkkitehtuurilla. Jos k\u00e4yt\u00e4t sovellusta Laravel-kehyksess\u00e4, sinun on luotava mallisi, n\u00e4kym\u00e4, ohjaimet sovelluksellesi.<\/p>\n<p>Laravelissa voidaan luoda ohjain ja malli komentoriviliittym\u00e4n kautta. Laravel-k\u00e4sity\u00f6l\u00e4inen on komentoriviliittym\u00e4, joka tarjoaa useita komentoja, jotka auttavat meit\u00e4 rakentamaan sovellusta. Voimme ja meid\u00e4n pit\u00e4isi luoda ohjain k\u00e4sity\u00f6l\u00e4iskomennolla.<\/p>\n<h3>Luo Laravel-ohjain<\/h3>\n<p>Oletetaan, ett\u00e4 ty\u00f6skentelet taustalla ja haluat suorittaa CRUD-operaatioita sivuilla. T\u00e4m\u00e4 tarkoittaa, ett\u00e4 sinun on rakennettava j\u00e4rjestelm\u00e4 sivujen hallitsemiseksi, joka sis\u00e4lt\u00e4\u00e4 sivujen luomisen, hakemisen, p\u00e4ivitt\u00e4misen ja poistamisen. Tietenkin t\u00e4t\u00e4 teht\u00e4v\u00e4\u00e4 varten sinun on luotava ohjain.<\/p>\n<p>Normaalisti ihmiset suorittavat komennon <code>php artisan make:controller PageController<\/code>. T\u00e4m\u00e4 komento luo tiedoston <code>PageController.php<\/code>hakemistoon app \/ Http \/ Controllers.<\/p>\n<p><strong>Huomaa<\/strong>: Sinun on suoritettava t\u00e4m\u00e4 komento projektin juurihakemistossa komentoriviliittym\u00e4n avulla.<\/p>\n<p><strong>PageController.php<\/strong><\/p>\n<pre><code>&lt;?php\n\u00a0\nnamespace AppHttpControllers;\n\u00a0\nuse IlluminateHttpRequest;\n\u00a0\nclass PageController extends Controller\n{\n\u00a0\u00a0\u00a0\u00a0\/\/\n}<\/code><\/pre>\n<p>T\u00e4ss\u00e4 generoidussa ohjaimessa sinun on kirjoitettava menetelmi\u00e4 ja m\u00e4\u00e4ritett\u00e4v\u00e4 reitit vastaavasti. Jokaiselle menetelm\u00e4lle sinun on kirjoitettava erillinen reitti.<\/p>\n<p>Esimerkiksi. lis\u00e4t\u00e4\u00e4n yksi menetelm\u00e4 <code>index()<\/code>ja m\u00e4\u00e4ritet\u00e4\u00e4n sille reitti.<\/p>\n<pre><code>&lt;?php\n\u00a0\nnamespace AppHttpControllers;\n\u00a0\nuse IlluminateHttpRequest;\n\u00a0\nclass PageController extends Controller\n{\n\u00a0\u00a0\u00a0\u00a0public function index() {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/do operations here\n\u00a0\u00a0\u00a0\u00a0}\n}<\/code><\/pre>\n<p>Jos haluat kutsua t\u00e4t\u00e4 <code>index()<\/code>toimintoa reittitiedostoon, meid\u00e4n on lis\u00e4tt\u00e4v\u00e4 alla oleva koodi.<\/p>\n<p><strong>reitit \/ web.php<\/strong><\/p>\n<pre><code>Route::get('pages', 'PageController@index');<\/code><\/pre>\n<p>Sama prosessi koskee kutakin lis\u00e4menetelm\u00e4\u00e4.<\/p>\n<p>T\u00e4ss\u00e4 virtauksessa ei ole mit\u00e4\u00e4n vikaa. Mutta t\u00e4t\u00e4 ei suositella. Laravelin suosion takana on useita syit\u00e4. Yksi syy on heid\u00e4n voimakkaat edistyneet k\u00e4sity\u00f6l\u00e4iskomennot.<\/p>\n<h3>Parempi tapa luoda Laravel-ohjain<\/h3>\n<p>Laravelissa meid\u00e4n ei tarvitse kirjoittaa kutakin menetelm\u00e4\u00e4 ja m\u00e4\u00e4ritt\u00e4\u00e4 erillinen reitti kullekin menetelm\u00e4lle. K\u00e4sity\u00f6l\u00e4iskomennolla voimme luoda ohjaimen ennalta m\u00e4\u00e4ritetyill\u00e4 menetelmill\u00e4. Ja vain kirjoittamalla yhden reitin, Laravel kutsuu automaattisesti sopivat menetelm\u00e4t.<\/p>\n<p>T\u00e4m\u00e4n sanottuasi, avaa komentoriviliittym\u00e4 projektisi juurihakemistossa ja suorita alla oleva komento. Muista, ett\u00e4 t\u00e4ll\u00e4 kertaa lis\u00e4\u00e4mme \u2013resurssin make: controller -komentoon.<\/p>\n<pre><code>php artisan make:controller PageController --resource<\/code><\/pre>\n<p>Nyt luotu <code>PageController.php<\/code>n\u00e4ytt\u00e4\u00e4 kuten alla.<\/p>\n<p><strong>PageController.php<\/strong><\/p>\n<pre><code>&lt;?php\n\u00a0\nnamespace AppHttpControllers;\n\u00a0\nuse IlluminateHttpRequest;\n\u00a0\nclass PageController extends Controller\n{\n\u00a0\u00a0\u00a0\u00a0\/**\n\u00a0\u00a0\u00a0\u00a0\u00a0* Display a listing of the resource.\n\u00a0\u00a0\u00a0\u00a0\u00a0*\n\u00a0\u00a0\u00a0\u00a0\u00a0* @return IlluminateHttpResponse\n\u00a0\u00a0\u00a0\u00a0\u00a0*\/\n\u00a0\u00a0\u00a0\u00a0public function index()\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\/**\n\u00a0\u00a0\u00a0\u00a0\u00a0* Show the form for creating a new resource.\n\u00a0\u00a0\u00a0\u00a0\u00a0*\n\u00a0\u00a0\u00a0\u00a0\u00a0* @return IlluminateHttpResponse\n\u00a0\u00a0\u00a0\u00a0\u00a0*\/\n\u00a0\u00a0\u00a0\u00a0public function create()\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\/**\n\u00a0\u00a0\u00a0\u00a0\u00a0* Store a newly created resource in storage.\n\u00a0\u00a0\u00a0\u00a0\u00a0*\n\u00a0\u00a0\u00a0\u00a0\u00a0* @param\u00a0 IlluminateHttpRequest\u00a0 $request\n\u00a0\u00a0\u00a0\u00a0\u00a0* @return IlluminateHttpResponse\n\u00a0\u00a0\u00a0\u00a0\u00a0*\/\n\u00a0\u00a0\u00a0\u00a0public function store(Request $request)\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\/**\n\u00a0\u00a0\u00a0\u00a0\u00a0* Display the specified resource.\n\u00a0\u00a0\u00a0\u00a0\u00a0*\n\u00a0\u00a0\u00a0\u00a0\u00a0* @param\u00a0 int\u00a0 $id\n\u00a0\u00a0\u00a0\u00a0\u00a0* @return IlluminateHttpResponse\n\u00a0\u00a0\u00a0\u00a0\u00a0*\/\n\u00a0\u00a0\u00a0\u00a0public function show($id)\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\/**\n\u00a0\u00a0\u00a0\u00a0\u00a0* Show the form for editing the specified resource.\n\u00a0\u00a0\u00a0\u00a0\u00a0*\n\u00a0\u00a0\u00a0\u00a0\u00a0* @param\u00a0 int\u00a0 $id\n\u00a0\u00a0\u00a0\u00a0\u00a0* @return IlluminateHttpResponse\n\u00a0\u00a0\u00a0\u00a0\u00a0*\/\n\u00a0\u00a0\u00a0\u00a0public function edit($id)\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\/**\n\u00a0\u00a0\u00a0\u00a0\u00a0* Update the specified resource in storage.\n\u00a0\u00a0\u00a0\u00a0\u00a0*\n\u00a0\u00a0\u00a0\u00a0\u00a0* @param\u00a0 IlluminateHttpRequest\u00a0 $request\n\u00a0\u00a0\u00a0\u00a0\u00a0* @param\u00a0 int\u00a0 $id\n\u00a0\u00a0\u00a0\u00a0\u00a0* @return IlluminateHttpResponse\n\u00a0\u00a0\u00a0\u00a0\u00a0*\/\n\u00a0\u00a0\u00a0\u00a0public function update(Request $request, $id)\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\/**\n\u00a0\u00a0\u00a0\u00a0\u00a0* Remove the specified resource from storage.\n\u00a0\u00a0\u00a0\u00a0\u00a0*\n\u00a0\u00a0\u00a0\u00a0\u00a0* @param\u00a0 int\u00a0 $id\n\u00a0\u00a0\u00a0\u00a0\u00a0* @return IlluminateHttpResponse\n\u00a0\u00a0\u00a0\u00a0\u00a0*\/\n\u00a0\u00a0\u00a0\u00a0public function destroy($id)\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/\n\u00a0\u00a0\u00a0\u00a0}\n}<\/code><\/pre>\n<p>Saimme menetelm\u00e4t, kuten indeksointi, luominen, tallentaminen, n\u00e4ytt\u00e4minen, muokkaaminen, p\u00e4ivitt\u00e4minen, tuhoaminen automaattisesti. Voit lukea kunkin menetelm\u00e4n kommentit, joissa selitet\u00e4\u00e4n, mit\u00e4 kukin menetelm\u00e4 tekee. M\u00e4\u00e4ritet\u00e4\u00e4n nyt sen reitti.<\/p>\n<p><strong>reitit \/ web.php<\/strong><\/p>\n<pre><code>Route::resource('pages', 'PageController');<\/code><\/pre>\n<p>T\u00e4m\u00e4 kekseli\u00e4s reitti luo useita reittej\u00e4 eri toimintojen k\u00e4sittelemiseksi. Jos haluat saada lis\u00e4tietoja toiminnoista, suorita komento <code>php artisan route:list<\/code>. Sivureitille n\u00e4et tuloksen kuvakaappauksen mukaisesti.<\/p>\n<p>T\u00e4m\u00e4 tulos antaa sinulle k\u00e4sityksen HTTP-menetelm\u00e4st\u00e4, URL-osoitteesta ja siit\u00e4, mik\u00e4 menetelm\u00e4 k\u00e4ytt\u00e4\u00e4 m\u00e4\u00e4ritetty\u00e4 URL-osoitetta.<\/p>\n<p>Esimerkiksi, jos k\u00e4yt\u00e4t URL-osoitetta YOUR_SITE_DOMAIN \/ sivusi GET-menetelm\u00e4ll\u00e4, se antaa kutsun <code>index()<\/code>PageController -menetelm\u00e4lle.<\/p>\n<p>Jos haluat luoda uuden sivun, URL-osoite on YOUR_SITE_DOMAIN \/ sivut \/ luo. Se kutsuu <code>create()<\/code>menetelm\u00e4\u00e4, jossa sinun on ladattava n\u00e4kym\u00e4 uuden sivun luomista varten.<\/p>\n<p>Kun l\u00e4het\u00e4t lomakkeen, jossa on method = &quot;post&quot; ja action = &quot;pages&quot;, se kutsuu <code>store()<\/code>menetelm\u00e4\u00e4.<\/p>\n<p>Ja niin edelleen.<\/p>\n<p>Kyse on Laravel-ohjaimen luomisesta CRUD-operaatioita varten. Jaa ajatuksesi alla olevassa kommenttiosassa.<\/p>\n<h4>Aiheeseen liittyv\u00e4t artikkelit<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/fi\/kuinka-tehda-tietokannan-kylvo-laravelissa\/\" title=\"Kuinka tehd\u00e4 tietokantojen kylv\u00f6 Laravelissa\" >Kuinka tehd\u00e4 tietokantojen kylv\u00f6 Laravelissa<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fi\/sosiaalinen-kirjautumisjarjestelma-laravel-socialiten-avulla\/\" title=\"Sosiaalinen kirjautumisj\u00e4rjestelm\u00e4 Laravel Socialiten avulla\" >Sosiaalinen kirjautumisj\u00e4rjestelm\u00e4 Laravel Socialiten avulla<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>T\u00e4ss\u00e4 artikkelissa tutkitaan, kuinka luoda Laravel-ohjain CRUD-operaatioita varten. K\u00e4ytt\u00e4m\u00e4ll\u00e4 kekseli\u00e4st\u00e4 ohjainta saadaan ennalta m\u00e4\u00e4ritellyt menetelm\u00e4t luotuiksi<\/p>\n","protected":false},"author":1,"featured_media":20716,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[499],"tags":[843],"class_list":["post-23842","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel","tag-affiai-fi"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/posts\/23842","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/comments?post=23842"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/posts\/23842\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/media\/20716"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/media?parent=23842"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/categories?post=23842"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/tags?post=23842"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}