我对laravel很新,我已经在互联网和laravel文档上搜索了答案,但没有任何内容。
我的编程方式是制作一个" main"数据库表的函数类,例如为用户创建一个具有main函数的类,所以我称之为" UsersService"并且有一些功能,如插入更新和获取或如果我有一个付款表,所以我创建一个新的类,只使用此表并调用它" PaymentsService"具备我需要的所有功能。
我一直在寻找与laravel有关的事情,但实际上并没有找到答案...... 那么伙计们,在幼虫身上制作这种东西的最好方法是什么?在控制器或模型中?
或者,如果你们有更好的方式做类似的事情,那就太好了! :)
答案 0 :(得分:0)
您正在谈论Active Record模式。 Laravel使用Eloquent ORM。
然后您可以在控制器中使用模型,如:
class BlogController extends Controller {
public function index()
{
$posts = Posts::all()->toArray();
}
}
虽然我更喜欢Doctrine ORM
使用的数据映射器模式答案 1 :(得分:0)
控制器是我掌握所有主要逻辑的地方,模型是我处理它的地方。例如,我有一个带有事件控制器的程序,其中我的所有crud功能和一个事件模型定义了我与其他模型的一对多关系,并在创建新事件时调用通知类。代码发布在下面。
Incidents.php
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Notifications\Notifiable;
use App\Notifications\IncidentCreatedNotification;
class Incident extends Model
{
use Notifiable;
protected static function boot(){
parent::boot();
self::created(function($model){
$model->notify(new IncidentCreatedNotification());
});
}
//Table Name
protected $table = 'incidents';
//Primary Key
public $primaryKey = 'id';
public function user(){
return $this->belongsTo('App\User');
}
public function status(){
return $this->belongsTo('App\Status');
}
public function incidentNotes(){
return $this->hasmany('App\IncidentNotes');
}
public function routeNotificationFor($driver){
//dd(openssl_get_cert_locations());
//dd(config('app.slack_webhook'));
return config('app.slack_webhook');
}
}
IncidentsController.php(删除逻辑)
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
use App\Incident;
use App\IncidentNotes;
use Validator;
class IncidentsController extends Controller
{
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('auth');
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
}
/**
* Destroys the Incident
*
*/
public function destroy($id)
{
}
}
是什么帮助我更好地理解了laravel:
Laracasts- https://laracasts.com/skills/laravel
laravel from scratch series- https://www.youtube.com/watch?v=EU7PRmCpx-0&list=PLillGF-RfqbYhQsN5WMXy6VsDMKGadrJ-&index=1