Laravel возвращает неверные данные из BDD - PullRequest
0 голосов
/ 28 февраля 2019

Я новичок в 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'
    ];
}

Ответы [ 2 ]

0 голосов
/ 28 февраля 2019

Еще кое-что, что я хотел бы добавить, это неправильный порядок таблиц

 <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> //ID
                    <td>{{$client->nom_client}}</td> //nom
                    //---------------------------------
                    // PRICE IS MISSING SO either remove from table or pass it from controller
                    //---------------------------------
                    <td>{{$client->prenom_client}}</td> // prenom
                    <td>{{$client->adresse_client}}</td> //adresse
                    <td>{{$client->nom_collectivite}}</td> //collectivite
                    <td>{{$client->telephone_client}}</td> //telephone
                    <td>{{$client->mail_client}}</td> // mail
                   // ............

И в edit.blade.php, пожалуйста, добавляйте кавычки во все значения, как указано @cbaconnier

0 голосов
/ 28 февраля 2019

Ваш код сгенерирует данный html, потому что вы не указали значение:

<input type="text" class="form-control" name="adresse_client" value=s/>

Вам нужно указать value="{{$client->adresse_client}}"

<input type="text" class="form-control" name="adresse_client" value="s"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...