本文介绍了如何访问保护Laravel类中的变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我不明白如何存取同一个类别中的表格名称。
I don't understand how to access the table name within same class.
class Timesheets extends Model
{
protected $table = "timesheets";
public static function getAllTimesheets() {
//return DB::table("timesheets")->get();
return DB::table("timesheets")
->join('users', 'name', '=', 'users.name')
->select('timesheets.id', 'name', 'timesheets.time_start', 'timesheets.time_end', 'timesheets.time_desc')
->get();
}
}
如何替换时间表表变量?
How can I replace the "timesheets" with the protected Table variable?
推荐答案
直接回答(new static) - > getTable $ c>
Direct Answer (new static)->getTable()
class Timesheets extends Model
{
protected $table = "timesheets";
public static function getAllTimesheets() {
return DB::table((new static)->getTable())
->join('users', 'name', '=', 'users.name')
->select('timesheets.id', 'name', 'timesheets.time_start', 'timesheets.time_end', 'timesheets.time_desc')
->get();
}
}
有机会了解详情
Eloquent模型使用,它允许你通过静态函数调用来检索一个新的类实例的非静态方法; 我们看到 $ instance = new static;
,它调用。这意味着您将获得的值将与新类实例化相同。由于,此操作只会如果所请求的方法根本不存在于当前类上,则为work。查看我们看到这个调用将被发送到一个新的查询,您可以使用 static :: join()
开始查询模型的表格。
As Álvaro Guimarães answered, you can start a query for the model's table by using static::join()
.
class Timesheets extends Model
{
protected $table = "timesheets";
public static function getAllTimesheets() {
return static::join('users', 'name', '=', 'users.name')
->select('timesheets.id', 'name', 'timesheets.time_start', 'timesheets.time_end', 'timesheets.time_desc')
->get();
}
}
这篇关于如何访问保护Laravel类中的变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!