如何更新 laravel 中的可翻译模型?
How to update translatable model in laravel?
你能帮帮我吗?我在这里做错了什么,我已经使用了本教程并创建和存储工作正常但是当尝试 edit/update 它不会工作时,你能检查我的代码吗?我正在使用本教程:https://mydnic.be/post/how-to-build-an-efficient-and-seo-friendly-multilingual-architecture-for-your-laravel-application
这条路由应该怎么写才能正常工作。
非常感谢您的帮助。代码写在下面,edit,controller和web.php(routes).
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();
}
尝试将您的表单标签替换为:
<form action="{{ route('offices.update', ['id'=>$office->id,'locale'=>app()->getLocale()])}}" method="POST">
你能帮帮我吗?我在这里做错了什么,我已经使用了本教程并创建和存储工作正常但是当尝试 edit/update 它不会工作时,你能检查我的代码吗?我正在使用本教程:https://mydnic.be/post/how-to-build-an-efficient-and-seo-friendly-multilingual-architecture-for-your-laravel-application
这条路由应该怎么写才能正常工作。
非常感谢您的帮助。代码写在下面,edit,controller和web.php(routes).
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();
}
尝试将您的表单标签替换为:
<form action="{{ route('offices.update', ['id'=>$office->id,'locale'=>app()->getLocale()])}}" method="POST">