Я новичок в Laravel, и я последовал учебному пособию, чтобы создать простое имя
После некоторых манипуляций я добился хорошего результата и увидел что-то странное.Когда я получаю свои данные по id с помощью метода :: find, возвращаемый результат не совсем совпадает с результатом моей базы данных.
правильные данные (посмотрите на строку, где id = 4)
Данные после нажатия на кнопку редактирования
Вы видите, что на втором входе отсутствует часть, а на третьем есть дополнительная "/".
Знает ли somoene, как исправить это поведение?
Вот страница index.blade.php из первого изображения
@extends('layout')
@section('content')
<style>
.uper {
margin-top: 40px;
}
</style>
<div class="uper">
@if(session()->get('success'))
<div class="alert alert-success">
{{ session()->get('success') }}
</div><br />
@endif
<table class="table table-striped">
<thead>
<tr>
<td>ID</td>
<td> nom</td>
<td> Price</td>
<td> prenom</td>
<td> adresse</td>
<td> collectivite</td>
<td> telephone</td>
<td> mail</td>
<td> ref</td>
<td colspan="2">Action</td>
</tr>
</thead>
<tbody>
@foreach($clients as $client)
<tr>
<td>{{$client->id_client}}</td>
<td>{{$client->nom_client}}</td>
<td>{{$client->prenom_client}}</td>
<td>{{$client->adresse_client}}</td>
<td>{{$client->nom_collectivite}}</td>
<td>{{$client->telephone_client}}</td>
<td>{{$client->mail_client}}</td>
<td>{{$client->ref_client}}</td>
<td><a href="{{ route('clients.edit',$client->id_client)}}" class="btn btn-primary">Edit</a></td>
<td>
<form action="{{ route('clients.destroy', $client->id_client)}}" method="post">
@csrf
@method('DELETE')
<button class="btn btn-danger" type="submit">Delete</button>
</form>
</td>
</tr>
@endforeach
</tbody>
</table>
<div>
@endsection
Вот правка.Страница blade.php со второго изображения
@extends('layout')
@section('content')
<style>
.uper {
margin-top: 40px;
}
</style>
<div>sdsq</div>
<div class="card uper">
<div class="card-header">
Edit client
</div>
<div class="card-body">
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div><br />
@endif
<form method="post" action="{{ route('clients.update', $client->id_client) }}">
@method('PATCH')
@csrf
<div class="form-group">
<label for="nom">nom client:</label>
<input type="text" class="form-control" name="nom_client" value={{$client->nom_client}} />
</div>
<div class="form-group">
<label for="prenom">prenom client:</label>
<input type="text" class="form-control" name="prenom_client" value={{$client->prenom_client}} />
</div>
<div class="form-group">
<label for="adresse">adresse client:</label>
<input type="text" class="form-control" name="adresse_client" value={{$client->adresse_client}}/>
</div>
<div class="form-group">
<label for="collectivite">collectivite client:</label>
<input type="text" class="form-control" name="nom_collectivite" value={{$client->nom_collectivite}} />
</div>
<div class="form-group">
<label for="telephone">telephone client:</label>
<input type="text" class="form-control" name="telephone_client" value={{$client->telephone_client}} />
</div>
<div class="form-group">
<label for="mail">mail client:</label>
<input type="text" class="form-control" name="mail_client" value={{$client->mail_client}} />
</div>
<div class="form-group">
<label for="ref">ref client:</label>
<input type="text" class="form-control" name="ref_client" value={{$client->ref_client}} />
</div>
<button type="submit" class="btn btn-primary">Update</button>
</form>
</div>
</div>
@endsection
Вот мой контроллер ClientController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\client;
class ClientController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$clients = client::all();
return view('clients.index', compact('clients'));
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
return view('clients.create');
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$request->validate([
'nom_client'=>'required',
'prenom_client'=>'required',
'adresse_client'=>'required',
'nom_collectivite'=>'required',
'telephone_client'=>'required',
'mail_client'=>'required',
'ref_client'=>'required'
]);
$client = new client([
'nom_client' => $request->get('nom_client'),
'prenom_client'=> $request->get('prenom_client'),
'adresse_client'=> $request->get('adresse_client'),
'nom_collectivite' => $request->get('nom_collectivite'),
'telephone_client'=> $request->get('telephone_client'),
'mail_client'=> $request->get('mail_client'),
'ref_client'=> $request->get('ref_client')
]);
$client->save();
return redirect('/clients')->with('success', 'Stock has been added');
}
/**
* Display the specified resource.
*
* @param int $id_client
* @return \Illuminate\Http\Response
*/
public function show($id_client)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param int $id_client
* @return \Illuminate\Http\Response
*/
public function edit($id_client)
{
$client = client::find($id_client);
return view('clients.edit', compact('client'));
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id_client
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id_client)
{
$request->validate([
'nom_client'=>'required',
'prenom_client'=>'required',
'adresse_client'=>'required',
'nom_collectivite'=>'required',
'telephone_client'=>'required',
'mail_client'=>'required',
'ref_client'=>'required'
]);
$client = client::find($id_client);
$client->nom_client = $request->get('nom_client');
$client->prenom_client = $request->get('prenom_client');
$client->adresse_client = $request->get('adresse_client');
$client->nom_collectivite = $request->get('nom_collectivite');
$client->telephone_client = $request->get('telephone_client');
$client->mail_client = $request->get('mail_client');
$client->ref_client = $request->get('ref_client');
$client->save();
return redirect('/clients')->with('success', 'Stock has been updated');
}
/**
* Remove the specified resource from storage.
*
* @param int $id_client
* @return \Illuminate\Http\Response
*/
public function destroy($id_client)
{
$client = client::find($id_client);
$client->delete();
return redirect('/clients')->with('success', 'Stock has been deleted Successfully');
}
}
А вот мой client.php Класс
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class client extends Model
{
public $timestamps = false;
protected $primaryKey = 'id_client';
protected $fillable = [
'nom_client',
'prenom_client',
'adresse_client',
'nom_collectivite',
'telephone_client',
'mail_client',
'ref_client'
];
}