У меня проблема с моим edit.blade.php. В представлении шоу я ограничил его только для пользователей, вошедших в систему, как вы можете видеть в моем контроллере
public function index()
{
$animal = Auth::user()->animals;
return view('farms.index', compact('animal'));
}
И в моем представлении индекса
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row justify-content-center">
<div class="col-md-8">
<div class="card">
<div class="card-header">Farm Dashboard</div>
<div class="card-body">
@if (session('status'))
<div class="alert alert-success" role="alert">
{{ session('status') }}
</div>
@endif
You are logged in! {{ Auth::user()->name }}
<br>
<a href="farms/create">Add animal</a>
@foreach( $animal as $animal)
<div class="row">
<div class="col-2">{{ $animal->id }}</div>
<div class="col-4"><a href="/farms/{{ $animal->id }}">{{ $animal->type->category }}</a></div>
<div class="col-4">{{ $animal->created_at }}</div>
</div>
@endforeach
</div>
</div>
</div>
</div>
</div>
@endsection
Но у меня все еще естьпроблема, если я изменю в своем URL-адресе идентификационный номер объекта другого пользователя, я все еще могу редактировать и обновлять.
Что я могу изменить в своем контроллере, чтобы предотвратить это
public function show($id)
{
$animal = Animal::query()->findOrFail($id);
return view('farms.show', compact('animal'));
}
/**
* Show the form for editing the specified resource.
*
* @param $id
* @return void
*/
public function edit($id)
{
$type = Type::all();
$user = Auth::user();
$animal = Animal::query()->findOrFail($id);
return view('farms.edit', compact('animal', 'type', 'user'));
}
/**
* Update the specified resource in storage.
*
* @param $id
* @return void
*/
public function update($id)
{
$animal = Animal::query()->findOrFail($id);
$animal->update($this->validateRequest());
return redirect('farms/' . $animal->id)->with('message', 'Animal Details Updated');
}