Laravel |Редактировать все данные из таблицы - PullRequest
0 голосов
/ 13 декабря 2018

Можете ли вы сказать мне, как я могу редактировать данные из таблицы базы данных - но не по идентификатору.Я хотел бы сделать несколько данных редактирования.

Теперь у меня есть идентификатор, и пытаюсь сделать что-то еще.

Код: list.blade.php

<div class="card-body">
    <h5 class="card-title">Title</h5>
    @foreach($metaList as $meta)
        <p class="card-text">{{ $meta->site_title }} </p>
    @endforeach
    <hr>
    <h5 class="card-title">Description</h5>         
    @foreach($metaList as $meta)
        <p class="card-text">{{ $meta->site_description }} </p>
    @endforeach
    <hr>
    <h5 class="card-title">Keywords</h5>
    @foreach($metaList as $meta)
        <p class="card-text">{{ $meta->site_keywords }}</p>
        <a class="card-link" href="{{ URL::to('meta/edit/' . $meta->id) }}"> 
        <i class="fas fa-pencil-alt"></i>Edit</a>
        <a class="card-link" href="{{ URL::to('meta/delete/' . $meta->id ) }}" onClick="return confirm('Are you sure?')"><i class="fas fa-times"> 
        </i>Remove</a>
    @endforeach
</div>

И теперь у меня есть несколько кнопок «Редактировать» и «Удалить» (столько строк, сколько столько кнопок).

В настоящее время у меня есть перенаправление для редактирования определенного идентификатора.Как создать кнопку перенаправления для редактирования всех строк одновременно?

MetaController:

public function edit(MetaRepository $metaRepo, $id)
    {
        $meta = $metaRepo->find($id);

        return view('pages.meta.edit', [
            "meta" => $meta,
        ]);
    }

    public function editStore(Request $request)
    {

        $meta = Meta::find($request->input('id'));
        $meta->site_keywords = $request->input('site_keywords');
        $meta->site_description = $request->input('site_description');
        $meta->site_title = $request->input('site_title');

        $meta->save();

        return redirect()->action('MetaController@mlist');
    }

и маршрутизация:

Route::get('meta/edit/{id}', 'MetaController@edit')->middleware('auth');

Route::post('meta/edit/', 'MetaController@editStore')->middleware('auth');

Спасибо за помощь!

1 Ответ

0 голосов
/ 13 декабря 2018

Используйте функцию массового обновления на моделях Eloquent.

Meta::update([
    'field1' => 'field1value', 
    'field2' => 'field2value'
]);

И если вы хотите обновить только определенные строки, добавьте функцию where

Meta::where('field', '=', 'value')->update([
    'field1' => 'field1value', 
    'field2' => 'field2value'
]);

Вам нужно будет добавить поля, которые вы хотите использовать, в массив $fillable в вашей модели.Или установите $guarded на ['*'].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...