【问题标题】:Laravel Missing argument 1 in get()Laravel在get()中缺少参数1
【发布时间】:2016-10-20 22:59:43
【问题描述】:

我正在尝试从名为“producers”的表中获取所有记录,但出现以下错误。

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');
    }
}

我的生产者控制器

<?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() 但结果相同,但没有运气。 我在这里做了什么蠢事?

【问题讨论】:

  • 你能告诉我们方法Producer::get吗?我认为这种方法需要ID。如果你想检索所有的生产者,你能告诉我们Producer::all的方法吗?
  • 感谢您的回答。我的问题不是得到,而是刀片中的那个:@foreach($producer->get() as $producer_r)。更改为 @foreach($producer->all() as $producer_r) 并且工作正常。谢谢。
  • 如何将其标记为已解决?
  • 好的。我建议你将$producer-&gt;all() 的结果放在一个变量中,因为在foreach 的每个循环中,你都会重新执行调用。
  • 如果您想标记为已解决,请回复您的第一个帖子并将其标记为答案。

标签: php database laravel model


【解决方案1】:

Eloquent all() 方法将返回模型表中的所有结果。仅在需要向查询添加约束时使用 get()

所以,请使用all() 而不是get()

【讨论】:

    猜你喜欢
    • 2015-05-07
    • 2018-02-10
    • 2017-02-22
    • 2021-12-21
    • 2017-10-05
    • 1970-01-01
    • 2014-02-02
    • 2016-10-27
    • 1970-01-01
    相关资源
    最近更新 更多