Je souhaite afficher uniquement des messages d'utilisateur, qui est le propriétaire de la poste, pas toutes les données de publication de la base de données. Comment faire?

J'ai déjà essayé ceci:

Ceci est mon contrôleur de produit:

public function index()
{
    $listproducts['listproducts'] = Product::where('user_id','=',Auth::user()->id)->get();
    return view('pages.products.index')->with($listproducts);
}

Ceci est ma relation modèle / user.php:

public function products(): \Illuminate\Database\Eloquent\Relations\HasMany
{

    return $this->hasMany(Product::class,'user_id','id');

}

Modèles / produit.php:

public function users(): \Illuminate\Database\Eloquent\Relations\BelongsTo
{
    return $this->belongsTo(User::class,'user_id', 'id');
}

C'est mon avis:

<tbody>
                        @if ($listproducts->count())
                            @foreach($listproducts as $listproduct)
                            <tr id="pid{{$listproduct->id}}">
                                <td style="width: 30%"  class="td p-0 pl-4 text-center">
                                    <div class="flex-column-product custom-control-child">
                                        <label>
                                            <input name="ids"
                                                   id="checkSingle"
                                                   type="checkbox"
                                                   class="checkSingle rounded border-gray-300 text-indigo-600 shadow-sm focus:border-indigo-300 focus:ring focus:ring-indigo-200 focus:ring-opacity-50"
                                                   value="{{ $listproduct -> id }}">
                                        </label>
                                        <img style="display: block; margin-left: auto; margin-right: auto;" class="img c-thumb" alt="image"
                                             data-toggle="tooltip" title=""  src="{{ asset("storage/gambarproduct")."/".$listproduct->gambar }}">
                                    </div>
                                    <div>
                                        <p style="margin-bottom: 0; margin-top: 1px; margin-left: 30px;" class="mr-2">
                                            <i class="fas fa-eye"></i>&nbsp;&nbsp;100&nbsp;&nbsp;
                                            <i class="fas fa-grin-hearts"></i>&nbsp;&nbsp;15&nbsp;&nbsp;
                                            <i class="fas fa-paper-plane"></i>&nbsp;&nbsp;8
                                        </p>
                                    </div>
                                    <div style="margin-bottom: 0; margin-top: 1px; margin-left: 30px;">
                                        <p class="text-judul-product">{{ $listproduct->nama }}</p>
                                    </div>
                                </td>
                                <td class="text-center">
                                    <div class="badge badge-success">Bekas</div>
                                </td>
                                <td class="text-center">
                                    <div class="badge badge-success">Elektronika</div>
                                </td>
                                <td class="text-center">
                                    {{ "Rp.".number_format($listproduct->harga) }}
                                </td>
                                <td class="text-center">
                                    <div class="badge badge-success">100</div>
                                </td>
                                <td class="text-center">
                                    <div class="badge badge-success">{{ "#".number_format($listproduct->id) }}</div>
                                </td>
                                <td class="text-center">
                                    <a href="#" class="btn btn-icon icon-left btn-primary"><i class="far fa-edit"></i> Edit</a>
                                    <a href="#" class="btn btn-danger delete"
                                       data-toggle="modal"
                                       data-target="#deleteModal"
                                       data-productid="{{$listproduct->id}}"><i class="fas fa-times"></i> Delete
                                    </a>
                                </td>
                            </tr>
                            @endforeach
                            @else
                                <tr>
                                    <td colspan="7" class="text-center text-white py-32 bg-red-400">Anda belum mempunyai iklan.</td>
                                </tr>
                            @endif

Je suis nouveau à Laravel, merci d'avance.

0
xfathurrahman 28 mars 2021 à 09:17

3 réponses

Meilleure réponse

Le problème est à mon avis, mon code dans le contrôleur est correct. Mais j'utilise Paginate à mon avis, je devrais donc utiliser Paginate dans mon contrôleur.

public function index()
    {
        $listproducts['listproducts'] = Product::
        where('user_id','=',Auth::user()->id)
            ->Paginate(7)
            ->onEachSide(2);;
        return view('pages.products.index')->with($listproducts);
    }

Ceci est mon nouveau code de contrôleur

0
xfathurrahman 30 mars 2021 à 06:20

Vous devez utiliser comme ça

$listproducts['listproducts'] = Product::where('user_id',Auth::user()->id)->get();

Ou

$listproducts['listproducts'] = Auth::user()->products()->get();
0
A.A Noman 28 mars 2021 à 07:00

Essayez d'utiliser les relations, comme ceci (dites-moi s'il y a une erreur):

public function index()
{
    $listproducts['listproducts'] = Auth::user()->products()->get(); // This will get you all products related to that user
    return view('pages.products.index')->with($listproducts);
}
0
matiaslauriti 28 mars 2021 à 06:35