我正在我的申请中建立一个上传页面。但是如何
我能在拉瓦维尔删除一个文件吗?
我认为:

<a href="{!! action('AdminTicketsController@deleteTicket',$ticket->id,$ticket->image) !!}" class="btn btn-dark">Remove ticket</a>

通过$ticket->image我给出了票证拥有的所有路径。这是我收到邮件请求的路径:
Route::post('admin/ticket/remove','AdminTicketsController@deleteTicket');

但当我死后把$request->image丢进控制器时,我看不到那张票的路径?
做这件事的正确方法是什么?
编辑:
当我说:
<a href="{!! action('AdminTicketsController@deleteTicket',['id' => $ticket->id, 'image' => $ticket->image()->path ]) !!}" class="btn btn-dark">Remove ticket</a>
它告诉我:
未定义的属性:
启亮\数据库\雄辩\关系\有许多::$path
(view:/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

最佳答案

可以将参数作为第二个数组参数传递给action函数:

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

在控制器中:
public function deleteTicket(Request $request, $id, $image)
{
    //use ticket_image
}

编辑
我建议不要将图像路径作为参数传递:只传递票证ID,然后从票证模型中检索控制器中的路径。
对于这个错误,你应该确保你的关系设置正确
编辑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();

关于php - Laravel删除文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34637793/

10-11 03:13