Как редактировать изображение и обновлять в laravel - PullRequest
0 голосов
/ 18 мая 2019

У меня есть таблица с именем Services, теперь эта таблица имеет следующий вид -

-id -заглавие -Боди -образ -slug -timestamps

А в администраторе сервисная страница, которую я создал для добавления, редактирования, удаления.

Моя проблема - edit и update изображение. Странная проблема заключается в том, что, когда я изменяю поле от image до aaaaa в служебной таблице (базе данных), ничего не происходит. должно случиться. потому что я изменил переименование image на aaaaa.

web.php

Route::resource('services', 'ServiceController');

ServiceController.php

public function edit(Service $service)
{
    return view('Admin.services.edit', compact('service'));
}

public function update(Request $request, Service $service)
{
    $service->title = $request->title;
    $service->body = $request->body;

    if($request->has('image')) {
        $image = $request->file('image');
        $filename = $image->getClientOriginalName();
        $image->move(public_path('images/services'), $filename);
        $service->image = $request->file('image')->getClientOriginalName();
    }

    $service->update();

    return redirect()->route('services.index');
}

edit.blade.php

<form class="form-horizontal" action="{{ route('services.update', $service->id) }}" method="post" enctype="multipart/form-data">
    {{ csrf_field() }}
    {{ method_field('PATCH') }}
    @include('Admin.layouts.errors')
    <div class="form-group">
        <label for="title">عنوان</label>
        <input type="text" class="form-control" id="title" name="title" placeholder="عنوان" value="{{ $service->title ? : old('title') }}">
    </div>
    <div class="form-group">
        <label for="body">متن</label>
        <textarea class="form-control" rows="10" id="body" name="body" placeholder="متن">{{ $service->body ? : old('body') }}</textarea>
    </div>
    <div class="form-group">
        <label for="images">تصویر</label>
        <div class="custom-file">
            <input type="file" class="custom-file-input" id="images" name="images">
            <label class="custom-file-label" for="images">تصویر محصول</label>
        </div>
    </div>
    <div class="form-group">
        <button type="submit" class="btn btn-primary">ذخیره</button>
    </div>
</form>

Service.php

protected $fillable = [
    'title',
    'body',
    'image',
    'slug',
];

Я даже изменил контроллер в методе update следующим образом, ничего не произошло.

$service->save(); 

1 Ответ

0 голосов
/ 20 мая 2019

В html у вас есть:

<input type="file" class="custom-file-input" id="images" name="images">

и в Контроллере: $ request-> file ('image').

Замените

<input type="file" class="custom-file-input" id="images" name="images">

на

<input type="file" class="custom-file-input" id="images" name="image">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...