【问题标题】:Laravel remove filesLaravel 删除文件
【发布时间】:2016-04-10 19:39:12
【问题描述】:

我正在我的应用程序中构建一个上传页面。但是如何 我可以在 Laravel 中删除文件吗?

我认为这是:

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

对于$ticket-&gt;image,我给出了票证的所有路径。这是我收到帖子请求的路线:

Route::post('admin/ticket/remove','AdminTicketsController@deleteTicket');

但是当我死了并在我的控制器中转储 $request-&gt;image 时,我看不到那张票的路径?

这样做的正确方法是什么?

编辑:

当我说:

&lt;a href="{!! action('AdminTicketsController@deleteTicket',['id' =&gt; $ticket-&gt;id, 'image' =&gt; $ticket-&gt;image()-&gt;path ]) !!}" class="btn btn-dark"&gt;Remove ticket&lt;/a&gt;

它告诉我:

未定义的属性: Illuminate\Database\Eloquent\Relations\HasMany::$path (查看:/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

【问题讨论】:

    标签: php laravel laravel-5 eloquent blade


    【解决方案1】:

    您可以将参数传递给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();
    

    【讨论】:

    • 感谢您的回复。但是一张票可以有多个图像/文件路径,所以我应该发送一个集合,我猜这可能吗?
    • @jamie:检查我的编辑:尝试将数组作为第二个参数传递给带有参数的操作函数......
    • 这取决于:一张票有很多图片还是只有一张?您的数据库表是如何构成的?
    猜你喜欢
    • 2016-09-10
    • 2018-10-17
    • 2015-12-01
    • 2014-12-04
    • 1970-01-01
    • 1970-01-01
    • 2015-08-08
    • 2020-09-10
    • 1970-01-01
    相关资源
    最近更新 更多