我的某个模特上有last()
方法。
class Article extends Model
{
public function last()
{
return Article::orderBy('created_at', 'desc')->first();
}
}
我想在我的其他型号上使用相同的方法。最好的方法是什么?
答案 0 :(得分:6)
你可以用两种方式解决这个问题。
使用您在所有其他模型中扩展的抽象类,而不是Model
。
use Illuminate\Database\Eloquent\Model;
abstract class BaseModel extends Model
{
public static function last() {
return static::orderBy('created_at', 'desc')->first()
}
}
所以你将拥有以下
class Article extends BaseModel
{
}
或者更恰当的是,正如你所指出的那样,有一个特征
trait Lastable {
public static function last()
{
return static::orderBy('created_at', 'desc')->first();
}
}
您在所需的课程中使用。
class Article extends Model {
use Lastable;
}