が解決されている私のGanttController
<?php
namespace App\Http\Controllers;
use App\GanttTask;
use App\GanttLink;
use Dhtmlx\Connector\GanttConnector;
class GanttController extends Controller
{
public function data() {
$connector = new GanttConnector(null, "PHPLaravel");
$connector->render_links(new GanttLink(), "id", "source,target,type");
$connector->render_table(new GanttTask(),"id","start_date,duration,text,progress,parent,project_id");
}
}
です:
コントローラー:
<?php
namespace App\Http\Controllers;
use App\GanttTask;
use App\GanttLink;
use Dhtmlx\Connector\GanttConnector;
class GanttController extends Controller
{
public function data(Request $request, $project_id) {
$connector = new GanttConnector(null, "PHPLaravel");
$connector->render_links(new GanttLink(), "id", "source,target,type");
// Passing as argument project_id variable to model constructor
// new GanttTask(compact('project_id')) will create object
// but will not save to database,
// so You can use:
// GanttTask::create(compact('project_id')) to push to db
$connector->render_table(new GanttTask(compact('project_id')),"id","start_date,duration,text,progress,parent,project_id");
}
}
モデル:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class GanttTask extends Model
{
protected $table = "gantt_tasks";
public $timestamps = false;
// add fillable to be able to set arguments in model constructor
protected $fillable = [
'start_date',
'duration',
'text',
'progress',
'parent',
'project_id'
];
}
私はあなたのsolutoionをtryied。少し違うあなたのコントローラのコメントを理解する。あなたはそれを簡単に説明できますか? – Fernando
新しいGanttTask(compact( 'project_id'))は新しいGanttTask(['project_id' => $ project_id])と似ていますが、データベースに保存しません。しかし、DBにも保存したい場合は、GanttTask :: create(compact( 'project_id'))を実行すると、データベースにレコードが作成され、オブジェクトが返されます。 – num8er
$ fillableについては、オブジェクトにメソッドを作成することが雄弁には便利です。 – num8er