2016-10-12 8 views
0

マイウェブブラウザのアドレスバーに表示されるプロジェクトIDを挿入する必要があります。私はLaravelを使用しています。5.2プロジェクトIDをLaravel 5.2のデータベースに送信する方法

lacalhost:8000/project/06 

gantt_taskテーブルのproject_idカラムにこの番号を挿入する必要があります。

これは、これはここで私のGantttaskモデル

<?php 
namespace App; 
use Illuminate\Database\Eloquent\Model; 

class GanttTask extends Model 
{ 
    protected $table = "gantt_tasks"; 
    public $primaryKey = "id"; 
    public $timestamps = false; 
} 


can you give me some solutions? 

答えて

0

が解決されている私の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' 
    ]; 
} 
+0

私はあなたのsolutoionをtryied。少し違うあなたのコントローラのコメントを理解する。あなたはそれを簡単に説明できますか? – Fernando

+0

新しいGanttTask(compact( 'project_id'))は新しいGanttTask(['project_id' => $ project_id])と似ていますが、データベースに保存しません。しかし、DBにも保存したい場合は、GanttTask :: create(compact( 'project_id'))を実行すると、データベースにレコードが作成され、オブジェクトが返されます。 – num8er

+0

$ fillableについては、オブジェクトにメソッドを作成することが雄弁には便利です。 – num8er

関連する問題