Как показать в представлении, используя foreach, laravel? - PullRequest
0 голосов
/ 16 ноября 2018

это клинок.php

<h1> Cadastro de clientes </h1>

<hr/>

@if(count($cliente)>0)
<ul>
@foreach($cliente as $cliente)
    <li>{{$nome->nome}}</li>
    <li>{{$endereco->endereco}}</li>
    <li>{{$email->email}}</li>
    <li>{{$celular->celular}}</li>
@endforeach
</ul>
@else
    <h4>Não há clientes</hr>
@endif

Это модель:

<?php

namespace App;

Use Illuminate\Database\Eloquent\Model;

class Cliente extends Model{

    protected $table = 'cliente';
    public $timestamps = false;
}

и это контроллер:

<?php
namespace App\Http\Controllers;

use App\Http\Controllers\Controller;

use Illuminate\Http\Request;

use App\Cliente;

class CadCliController extends Controller {

    public function cadCli() {
        $cliente = Cliente::all();

        $array = array('cliente'=>$cliente);


        return view('cadCli', $array);
    }

Я не могу показать таблицу на foreach. продолжайте показывать ошибку, что переменная nome не определена. Не могли бы вы помочь? ............................................. .......................................

Ответы [ 2 ]

0 голосов
/ 16 ноября 2018

Прежде всего, если вы возвращаете группу элементов, будьте согласны с именами переменных, которые вы используете (используйте clientes вместо cliente):

class CadCliController extends Controller {

    public function cadCli() {
        $clientes = Cliente::all();

        return view('cadCli', ['clientes' => $clientes]);
    }
}

Теперь в вашемview Если вы видите в своем @foreach утверждении, вы делаете это:

...
@if(count($cliente)>0)
    <ul>
    @foreach($cliente as $cliente)
        <li>{{$nome->nome}}</li> // <---------
        <li>{{$endereco->endereco}}</li> // <---------
        <li>{{$email->email}}</li> // <---------
        <li>{{$celular->celular}}</li> // <---------
    @endforeach
    </ul>
@else
...

Как видите, этих переменных ($nome, $endereco и т. д.) не существует, потому что выопределяя каждый элемент массива $clientes как $cliente, поэтому я считаю, что это атрибуты каждого объекта:

...
@if(count($cliente)>0)
    <ul>
    @foreach($clientes as $cliente)
        <li>{{$cliente->nome}}</li> // <---------
        <li>{{$cliente->endereco}}</li> // <---------
        <li>{{$cliente->email}}</li> // <---------
        <li>{{$cliente->celular}}</li> // <---------
    @endforeach
    </ul>
@else
...
0 голосов
/ 16 ноября 2018

Вы просто сможете изменить свой цикл @foreach.В типичном цикле @foreach вы просматриваете группу записей для отображения информации о каждой отдельной записи.Вот почему, как правило, вы увидите @foreach($records as $record).

Я не уверен, что единственная версия 'cliente' есть в вашем языке, поэтому я использовал client.Затем вы звоните nome, endereco и т. Д. Из индивидуальной записи клиента.Посмотрите, поможет ли это @foreach:

@foreach($cliente as $client)
    <li>{{$client->nome}}</li>
    <li>{{$client->endereco}}</li>
    <li>{{$client->email}}</li>
    <li>{{$client->celular}}</li>
@endforeach
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...