Guys.
I'm having an issue regarding Laravel's Seeding... so I'm getting a [ErrorException] Illegal offset type
from One of My seeds. I believe my issue is coming from the foreign key, from the other table that I'm using
Below is My Model, My Table and My Seed which I'm getting.
Channel - Model
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use App\Tenant;
use App\InactiveLead;
use App\Lead;
class Channel extends Model
{
//
protected $primaryKey = ['channel_id'];
protected $fillable = ['name', 'tenant_name'];
public function tenant()
{
return $this->belongsTo(Tenant::class, 'name', 'tenant_name');
}
public function inactivelead()
{
return $this->hasMany(InactiveLead::class, 'inactive_lead_id', 'inactive_lead_id');
}
public function lead()
{
return $this->hasMany(Lead::class, 'lead_id', 'lead_id');
}
}
Channel - Table
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateChannelsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('channels', function (Blueprint $table) {
$table->increments('channel_id');
$table->string('name');
$table->string('tenant_name');
$table->foreign('tenant_name')->references('name')->on('tenants');
$table->unique(['tenant_name', 'name']);
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('channels');
}
}
Channel - Seeder
<?php
use Illuminate\Database\Seeder;
use App\Tenant;
use App\Channel;
use Faker\Factory as Faker;
class ChannelsTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
//
$faker = Faker::create();
$Tenants = Tenant::all()->pluck('name')->toArray();
$Channels = array('SMS', 'Email', 'MMS', 'Call');
$limit = 100;
for($i = 0; $i < $limit; $i++) {
$channel = new Channel([
'tenant_name' => $faker->unique()->randomElement($Tenants),
'name' => $faker->unique()->randomElement($Channels)
]);
$channel->save();
}
}
}
via Chebli Mohamed
Aucun commentaire:
Enregistrer un commentaire