Как обновить переводимую модель в Laravel? - PullRequest
0 голосов
/ 04 декабря 2018

вы можете мне помочь.Что я здесь не так делаю, я использовал этот учебник и хорошо создавал и хранил работу, но при попытке отредактировать / обновить его не получилось, вы можете проверить мой код.Я использую этот учебник: https://mydnic.be/post/how-to-build-an-efficient-and-seo-friendly-multilingual-architecture-for-your-laravel-application

Как мне написать этот маршрут, чтобы работать хорошо.

Большое спасибо за помощь.Код написан ниже, edit, controller и web.php (маршруты).

edit.blade.php:

@extends ('layouts.master')



@section('content')
<div class="container">
    <div class="row justify-content-center">
        <div class="col-md-8">
            <div class="card">
                <div class="card-header">Edit Office</div>

                <div class="card-body">
                 <form action="{{ route('offices.update', $office->id)}}/{{app()->getLocale()}}" method="POST">
   {{csrf_field()}}

   <div class="form-group">
<lebal>Name ({{ app()->getLocale() }})</lebal>
<input type="text" class="form-control" name="name" value="{{$office->name}}">
</div>

  <div class="form-group">
<lebal>Content ({{ app()->getLocale() }})</lebal>
<textarea class="form-control" name="content">{{$office->content}}</textarea>
</div>



             <input type="submit" value="Save">

        </form>

                </div>
            </div>
        </div>
    </div>
</div>
@endsection

web.php:

Route::get('/office/edit/{id}/{locale}', 'OfficesController@edit')->name('offices.edit');

Route::post('/office/update/{id}/{locale}', 'OfficesController@update')->name('offices.update');

OfficesController.php

public function edit($id, $locale)
    {
      $office = Office::find($id);
      app()->setLocale($locale);
        return view('offices.edit')->with('office', $office);
    }


        public function update(Request $request, $id, $locale)
    {
         $office = Office::find($id);





            $office->translateOrNew($locale)->name = $request->name;
            $office->translateOrNew($locale)->content = $request->content; 



         $office->save();

         return redirect()->back();
    }

1 Ответ

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

Попробуйте заменить тег формы следующим образом:

   <form action="{{ route('offices.update', ['id'=>$office->id,'locale'=>app()->getLocale()])}}" method="POST">
...