Laravel::在具有构造函数的帮助器类中调用方法
正如我在上一个问题中提到的,我是Laravel的初学者,因此我需要一些帮助,我必须创建helper类来为一些表创建随机Id,我使用表构造函数创建这个类来接收deffirent表:Laravel::在具有构造函数的帮助器类中调用方法,laravel,constructor,controller,helper,Laravel,Constructor,Controller,Helper,正如我在上一个问题中提到的,我是Laravel的初学者,因此我需要一些帮助,我必须创建helper类来为一些表创建随机Id,我使用表构造函数创建这个类来接收deffirent表: <?php namespace App\Helpers; use Illuminate\Support\Facades\DB; class RandomId { public function __construct($my_table) { $this->my_tabl
<?php
namespace App\Helpers;
use Illuminate\Support\Facades\DB;
class RandomId
{
public function __construct($my_table)
{
$this->my_table=$my_table;
}
public function get_id()
{
$id = mt_rand(1000000000, 9999999999);
if($this->check_id($id)){
get_id();
}
return $id;
}
public function check_id($id)
{
$table=DB::table($this->my_table)->where('id',$id)->get();
if (count($course)==0){
return false;
}
return true;
}
}
现在我想在控制器中调用它,我做了类似的事情,但不起作用:
<?php
namespace App\Http\Controllers\course;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Helpers\RandomId;
class Course_controller extends Controller
{
public function add(Request $request)
{
$id=RandomId::get_id('courses');
dd($id);
}
}
这是因为get\u id
函数不是静态的。定义静态方法时,应添加static
关键字:
public static function get_id()
{
....
我得到了这个错误:当不在对象上下文中时使用$this
您还应该将检查id
定义为静态方法,并像这样调用它:self::检查id($id)
感谢我所做的一切,在我将$this->mytable更改为self::$mytable后,我收到以下错误:访问未声明的静态属性:App\Helpers\RandomId::$myu table
yw!您的代码有一些问题。首先,您定义了构造函数,但从未使用过它,而且还使用了静态函数,所以不再需要它。其次,当您定义静态方法时,它不能依赖,也不能依赖非静态属性,如$my_table
。我建议您将表名作为静态函数的参数。也别忘了检查正确答案是否有用。多谢,我删除了这个类,只使用了偏执狂的方法
public static function get_id()
{
....