{"id":27429,"date":"2021-05-07T16:17:00","date_gmt":"2021-05-07T13:17:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=27429"},"modified":"2021-10-17T05:10:01","modified_gmt":"2021-10-17T02:10:01","slug":"battre-satt-att-skapa-laravel-controller-for-crud-operationer","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/sv\/battre-satt-att-skapa-laravel-controller-for-crud-operationer\/","title":{"rendered":"B\u00e4ttre s\u00e4tt att skapa Laravel Controller f\u00f6r CRUD-operationer"},"content":{"rendered":"<p>Laravel arbetar med MVC (Model-View-Controller) arkitektoniskt m\u00f6nster. Om du k\u00f6r ett program p\u00e5 Laravel framework m\u00e5ste du skapa modell, visa, styrenheter f\u00f6r din applikation.<\/p>\n<p>I Laravel kan man skapa en styrenhet och modell via kommandoradsgr\u00e4nssnittet. Laravel artisan \u00e4r kommandoradsgr\u00e4nssnittet som tillhandah\u00e5ller ett antal kommandon som hj\u00e4lper oss att bygga applikationen. Vi kan och borde skapa en kontroller med kommandot artisan.<\/p>\n<h3>Skapa en Laravel Controller<\/h3>\n<p>L\u00e5t oss s\u00e4ga att du arbetar p\u00e5 back-end och vill utf\u00f6ra CRUD-operationer p\u00e5 sidor. Det betyder att du m\u00e5ste bygga ett system f\u00f6r att hantera sidor som inkluderar att skapa, h\u00e4mta, uppdatera och ta bort sidor. Naturligtvis, f\u00f6r den h\u00e4r uppgiften m\u00e5ste du skapa en styrenhet.<\/p>\n<p>Normalt k\u00f6r folk kommandot <code>php artisan make:controller PageController<\/code>. Detta kommando genererar en fil <code>PageController.php<\/code>under app \/ Http \/ Controllers-katalogen.<\/p>\n<p><strong>Obs!<\/strong> Du m\u00e5ste k\u00f6ra det h\u00e4r kommandot i root-katalogen f\u00f6r ett projekt med kommandoradsgr\u00e4nssnittet.<\/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>I den h\u00e4r genererade styrenheten m\u00e5ste du skriva metoder och definiera rutterna d\u00e4refter. F\u00f6r varje metod m\u00e5ste du skriva en separat rutt.<\/p>\n<p>Till exempel. l\u00e5t oss l\u00e4gga till en metod <code>index()<\/code>och definiera en rutt f\u00f6r den.<\/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>F\u00f6r att anropa denna <code>index()<\/code>funktion i ruttfilen b\u00f6r vi l\u00e4gga till nedanst\u00e5ende kod.<\/p>\n<p><strong>rutter \/ web.php<\/strong><\/p>\n<pre><code>Route::get('pages', 'PageController@index');<\/code><\/pre>\n<p>Samma process g\u00e4ller f\u00f6r varje ytterligare metod.<\/p>\n<p>Det \u00e4r inget fel med detta fl\u00f6de. Men detta rekommenderas inte s\u00e4tt. Bakom Laravels popularitet finns det flera sk\u00e4l. En av anledningarna \u00e4r deras kraftfulla avancerade hantverkarkommandon.<\/p>\n<h3>B\u00e4ttre s\u00e4tt att skapa Laravel Controller<\/h3>\n<p>I Laravel beh\u00f6ver vi inte skriva varje metod och definiera en separat rutt f\u00f6r varje metod. Med kommandot hantverkare kan vi generera en styrenhet med f\u00f6rdefinierade metoder. Och bara genom att skriva en enda rutt ringer Laravel automatiskt till l\u00e4mpliga metoder.<\/p>\n<p>Med detta sagt \u00f6ppnar du ditt kommandoradsgr\u00e4nssnitt i projektets rotkatalog och k\u00f6r kommandot nedan. Notera, den h\u00e4r g\u00e5ngen l\u00e4gger vi till \u2013resurs till v\u00e5rt kommando make: controller.<\/p>\n<pre><code>php artisan make:controller PageController --resource<\/code><\/pre>\n<p>Nu <code>PageController.php<\/code>ser det genererade ut som nedan.<\/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>Vi har metoderna som att indexera, skapa, lagra, visa, redigera, uppdatera, f\u00f6rst\u00f6ra automatiskt. Du kan l\u00e4sa kommentarerna f\u00f6r varje metod som f\u00f6rklarar vad varje metod g\u00f6r. L\u00e5t oss nu ange rutten f\u00f6r den.<\/p>\n<p><strong>rutter \/ web.php<\/strong><\/p>\n<pre><code>Route::resource('pages', 'PageController');<\/code><\/pre>\n<p>Denna resursrika rutt skapar flera rutter f\u00f6r att hantera olika \u00e5tg\u00e4rder. Nu, f\u00f6r att f\u00e5 detaljer om \u00e5tg\u00e4rderna, k\u00f6r kommandot <code>php artisan route:list<\/code>. F\u00f6r sidv\u00e4gen ser du utdata som visas p\u00e5 sk\u00e4rmdumpen.<\/p>\n<p>Denna utg\u00e5ng ger dig en uppfattning om HTTP-metod, URL och vilken metod som kommer att anropa angiven URL.<\/p>\n<p>Till exempel, om du k\u00f6r en URL YOUR_SITE_DOMAIN \/ sidor med GET-metoden kommer det att ringa till <code>index()<\/code>metoden f\u00f6r en PageController.<\/p>\n<p>Om du vill skapa en ny sida kommer URL: en YOUR_SITE_DOMAIN \/ pages \/ create. Det ger ett samtal till <code>create()<\/code>metoden d\u00e4r du beh\u00f6ver ladda en vy f\u00f6r att skapa en ny sida.<\/p>\n<p>N\u00e4r du skickar in ett formul\u00e4r med sidorna method = &quot;post&quot; och action = &quot;ger det ett samtal till <code>store()<\/code>metoden.<\/p>\n<p>Och s\u00e5 vidare.<\/p>\n<p>Det handlar om att skapa Laravel-kontroller f\u00f6r CRUD-operationer. Dela dina tankar i kommentarsektionen nedan.<\/p>\n<h4>relaterade artiklar<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/sv\/hur-man-gor-databaserning-i-laravel\/\" title=\"Hur man g\u00f6r databaserning i Laravel\" >Hur man g\u00f6r databaserning i Laravel<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/sv\/socialt-inloggningssystem-med-laravel-socialite\/\" title=\"Socialt inloggningssystem med Laravel Socialite\" >Socialt inloggningssystem med Laravel Socialite<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Inspelningsk\u00e4lla:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I den h\u00e4r artikeln studerar vi hur man skapar en Laravel-kontroller f\u00f6r CRUD-operationer. Genom att anv\u00e4nda resursfull controller f\u00e5r vi de f\u00f6rdefinierade metoderna genererade<\/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":[503],"tags":[850],"class_list":["post-27429","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel2-10","tag-affiai-sv"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/posts\/27429","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/comments?post=27429"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/posts\/27429\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/media\/20716"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/media?parent=27429"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/categories?post=27429"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/tags?post=27429"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}