2016-06-19 3 views
1

Я пытаюсь получить все записи из таблицы с именем «продюсеры», но я получаю следующую ошибку.Laravel Отсутствует аргумент 1 в get()

Missing argument 1 for Illuminate\Support\Collection::get(), called in /var/www/html/wines/storage/framework/views/ac350063efb624ac50d199628897fd7d72bc196c.php on line 63 and defined (View: /var/www/html/wines/resources/views/admin/producers.blade.php) 

Вот мои файлы: (миграция)

<?php 
use Illuminate\Database\Schema\Blueprint; 
use Illuminate\Database\Migrations\Migration; 

class CreateProducerTable extends Migration { 
    public function up() 
    { 
     Schema::create('producers', function (Blueprint $table) { 
      $table->increments('id'); 
      $table->string('producer_name'); 
      $table->string('phone_number'); 
      $table->string('user_id')->unique(); 
      $table->string('avatar')->default('default.jpg'); 
      $table->timestamps(); 
     }); 
    } 
    public function down() 
    { 
     Schema::drop('producers'); 
    } 
} 

Мои ProducerController

<?php 
namespace App\Http\Controllers; 
use Illuminate\Http\Request; 
use App\Http\Requests; 
class ProducerController extends Controller { 
    public function __construct()  { 
     $this->middleware('isProducer'); 
    } } 

модель производитель:

<?php 
namespace App; 
use Illuminate\Database\Eloquent\Model; 
class Producer extends Model { 
    protected $table = 'producers'; 
    protected $fillable = [ 
     'id','producer_name', 'phone_number','user_id','avatar' 
    ]; 
    protected $hidden = [ 
    ]; 
} 

Тогда, когда я использую

public function admin_producers() { 
     return view('admin.producers',array('user'=>Auth::user(),'producer'=>Producer::get())); 
    } 

на контроллере, чтобы получить все мои записи. Я получаю эту ошибку. Я также пробовал с Producer :: all(), но с тем же результатом, не повезло. Я делаю что-то глупое здесь?

+0

Можете ли вы показать нам метод 'Продюсер :: get'? Я думаю, что для этого метода требуется идентификатор. Можете ли вы показать нам также метод 'Продюсер :: все', если вы хотите получить все Продюсеры? – keupsonite

+0

Благодарим вас за ответ. Моя проблема заключалась не в том, чтобы получить, а в клипе: @foreach ($ производитель-> get() как $ производитель_r). Изменено на @foreach ($ производитель-> all() как $ производитель_r) и работает нормально. Спасибо. – scottbear

+0

Как я могу отметить это как решение? – scottbear

ответ

3

Метод Eloquent all() вернет все результаты в таблицу модели. Используйте только get(), когда вам нужно добавить ограничения на запросы.

Итак, используйте all() вместо get().

Смежные вопросы