Class Laravel使用变量作为其名称调用模型类
我刚刚开始使用Laravel队列,不知道这是否可以在Laravel中完成 而不是这样做的工作Class Laravel使用变量作为其名称调用模型类,class,eloquent,laravel-5.4,Class,Eloquent,Laravel 5.4,我刚刚开始使用Laravel队列,不知道这是否可以在Laravel中完成 而不是这样做的工作 $test1 = Test1::where('fieldname', $value)->exists(); $test2 = Test2::where('fieldname', $value)->exists(); $test3 = Test3::where('fieldname', $value)->exists(); $test4 = Test4::where('fieldname
$test1 = Test1::where('fieldname', $value)->exists();
$test2 = Test2::where('fieldname', $value)->exists();
$test3 = Test3::where('fieldname', $value)->exists();
$test4 = Test4::where('fieldname', $value)->exists();
我想创建一个模型类和字段名数组,然后在数组上循环
$classes = [
'Test1' => 'fieldname',
'Test2' => 'fieldname',
'Test3' => 'fieldname',
'Test4' => 'fieldname',
];
foreach($classes as $class => $field) {
$class::where($field, $groupid)->exists();
}
但是当我运行我的作业时,我收到以下消息,它就死了
找不到类“Test1”
我想在循环中做一些其他的事情,这样可以大大减少代码量,并且看起来更可读
你不能像我尝试的那样使用变量调用一个类吗
这是我的密码
<?php
namespace App\Jobs;
use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use \App\Models\Test;
class ImportProductGroupCrm implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
protected $product;
public $tries = 1;
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
$classes = [
'Test' => 'field-Name',
];
foreach($classes as $class => $field) {
$class::where($field, $groupid)->exists();
}
}
}
您必须指定整个类名或使用::class
:
$classes=[
'App\Test1'=>'fieldname',
Test1::class=>“fieldname”,
];