2016-01-06 79 views
3

我正在建立一個上傳頁面在我的應用程序。但是,如何在Laravel中刪除文件 ?Laravel刪除文件

我在我的觀點得到了這個:

<a href="{!! action('[email protected]',$ticket->id,$ticket->image) !!}" class="btn btn-dark">Remove ticket</a> 

隨着$ticket->image我給的票已全部路徑。這是我的路,我收到POST請求:

Route::post('admin/ticket/remove','[email protected]'); 

但是,當我死去,在我的控制器轉儲$request->image,我看不出票的路徑?

這樣做的正確方法是什麼?

編輯:

當我說:

<a href="{!! action('[email protected]',['id' => $ticket->id, 'image' => $ticket->image()->path ]) !!}" class="btn btn-dark">Remove ticket</a>

它告訴我:

未定義的屬性: 照亮\數據庫\雄辯\關係\的hasMany :: $路徑 (查看:/home/vagrant/Code/support/local/resources/views/admin/ticket.blade.php)

在我的票模型我說:

public function image() 
{ 
    return $this->hasMany('App\image'); 
} 

,並在我的圖像模型:

public function ticket() 
{ 
    return $this->belongsTo('App\ticket'); 
} 

數據庫:

TICKET 
ticketid 
ticketname 
IMAGE 
imageid 
ticket_ticketid 
path 

回答

1

可以傳遞參數給action功能,作爲第二個陣列參數:

<a href="{!! action('[email protected]',['id' => $ticket->id, 'image' => $ticket->image ]) !!}" class="btn btn-dark">Remove ticket</a> 

並在控制器:

public function deleteTicket(Request $request, $id, $image) 
{ 
    //use ticket_image 
} 

編輯

我建議不要通過圖像路徑作爲參數:通止票ID,然後檢索從控制器的路徑票模型。 對於錯誤,你應該確保你的關係,正確設置

EDIT 2

您還沒有指定的關係正確:只要你不使用的表字段名laravel約定,你有你的關係到指定的外鍵和主鍵:

票務

public function images() 
{ 
    return $this->hasMany('App\image', 'ticket_ticketid', 'ticketid'); 
} 

圖片

public function ticket() 
{ 
    return $this->belongsTo('App\ticket', 'ticket_ticketid', 'ticketid'); 
} 

一旦你建立了一個$ticket模型可以用獲取的圖像:

$images = $ticket->images(); 

或者:

$images = Ticket::find($ticket_id)->images(); 
+0

感謝您的答覆。但是票可以有多個圖像/文件路徑,所以我應該發送一個我認爲可能的集合? – Jamie

+0

@jamie:chek我的編輯:嘗試傳遞數組作爲第二個參數與動作函數的參數... – Moppo

+0

謝謝,但我的模型中的關係是正確的? – Jamie