iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 13
0
Modern Web

Laravel學習系列 第 13

LARAVEL學習 DAY 13 CRUD FOR WEB(五)

  • 分享至 

  • xImage
  •  

真的是新年快樂
跨年我在睡覺
在00:01的時候被自己的鬧鐘弄醒
真的好難過 超級邊緣

LARAVEL學習 DAY 13 CRUD FOR WEB(五)

前言

安安是我 我不是安安
↑不知道在講三小

正文

太棒了 今天要來講編輯的部分
負責控制編輯頁面的就是edit
然後更新就是update的部分
不過我們只會使用PUT的部分 因為這個編輯主要是整體更新 而不是部分更新
不管了 先上Controller function

public function edit($id)
{
    $post = $this->CRUDRepo->find($id);
    return view('crud.edit', ['post' => $post]);
}
public function update(Request $request, $id)
{
    $data = $request->only('title', 'content');
    $post = $this->CRUDRepo->update($id, $data);
    if ($post) {
        return redirect()->route('crud.show', $id);
    }
    return redirect()->route('crud.index');
}

edit的部分就是跟show很像(完全一模一樣好不)
然後update就是拿新的去更新舊的 沒什麼問題的話就是這樣了(超級敷衍 明明還要防一堆錯誤 結果只是防小事 還不吐錯誤的)
然後就是Repository的部分

public function update($id, $data)
{
    $post =  CRUD::find($id);
    if (!$post) {
        return false;
    }
    return $post->update($data);
}

反正就這樣啦(持續敷衍 覺得不錯啦 比上一篇多)
然後show的部分... 不管啦 把全部的連結都放上去 省得以後麻煩

@extends('layouts.CRUD')
@section('title', '查看')
@section('content')
<h1>{{ $post->title }}</h1>
<div>{{ $post->content }}</div>
<a class="btn btn-default" href="{{ route('crud.index') }}">返回</a>
<a class="btn btn-primary" href="{{ route('crud.edit', $post->id) }}">編輯</a>
<a class="btn btn-danger">刪除</a>
@endsection

那個 刪除下次講 我只是先擺個按鈕
然後這次的本體 edit.blade.php

@extends('layouts.CRUD')
@section('title', '編輯')
@section('content')
<form action="{{ route('crud.update', $post->id) }}" method="post">
    {{ method_field('put') }}
    {{ csrf_field() }}
    <div class="form-group">
        <label for="title">標題</label>
        <input type="text" class="form-control" name="title" value="{{ $post->title }}">
    </div>
    <div class="form-group">
        <label for="content">內容</label>    
        <textarea class="form-control" name="content" cols="30" rows="10">{{ $post->content }}</textarea>
    </div>
    <a class="btn btn-default" href="{{ route('crud.show', $post->id) }}">返回</a>
    <button type="submit" class="btn btn-primary">送出</button>
</form>
@endsection

這東西跟create也是超級像的
然後我們的方法是put 就這樣擺 不過也可以用這個
<input type="hidden" name="_method" value="put">
沒記錯應該是長這樣 不是長這樣就快來噴我 以免我誤人子弟

對 就是這幅鳥樣 下次就是刪除了 不過有一些驗證之類的看我會不會記得講...

結語

感冒會殺死一個人
不過不會是我


上一篇
LARAVEL學習 DAY 12 CRUD FOR WEB (四)
下一篇
LARAVEL學習 DAY 14 CRUD FOR WEB(六)
系列文
Laravel學習30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
krix
iT邦新手 5 級 ‧ 2019-05-23 16:54:25

edit.blade.php
第四行
form action="{{ route('crud.update') }}" method="post"
沒帶 ID,應改成
form action="{{ route('crud.update', $post->id) }}" method="post"

a7612626 iT邦新手 5 級 ‧ 2022-09-14 00:06:51 檢舉

久久上來收菜,已更正,謝謝指教

我要留言

立即登入留言