【问题标题】:Laravel 5.2 : How to change the status of multiple articles?Laravel 5.2:如何更改多篇文章的状态?
【发布时间】:2016-05-26 08:16:56
【问题描述】:

我用的是Laravel 5.2,想改变多篇文章的状态,视图是这样的:

查看:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <meta http-equiv="x-ua-compatible" content="ie=edge">
    <link href="//cdn.bootcss.com/bootstrap/4.0.0-alpha.2/css/bootstrap.min.css" rel="stylesheet">
    <link href="//cdn.bootcss.com/tether/1.3.2/css/tether.min.css" rel="stylesheet">
</head>
<body>
<div class="container">
    <div class="card">
        <h3 class="card-header">Unpublished Articles</h3>
        <div class="card-block">
            <div class="row">
                <div class="col-sm-4">
                </div>
                <div class="col-sm-4">
                    Title
                </div>
                <div class="col-sm-4">
                    Status
                </div>
            </div>
            <form class="form-horizontal" role="form" method="POST"
                  action="{{ url('articles/publish') }}">
                {!! csrf_field() !!}
                <div class="row">
                    <div class="col-sm-4">
                        <label class="c-input c-checkbox">
                            <input type="checkbox" name="article[]" value="1">
                            <span class="c-indicator"></span>
                        </label>
                    </div>
                    <div class="col-sm-4">
                        article1
                    </div>
                    <div class="col-sm-4">
                        unpublished
                    </div>
                </div>
                <div class="row">
                    <div class="col-sm-4">
                        <label class="c-input c-checkbox">
                            <input type="checkbox" name="article[]" value="2">
                            <span class="c-indicator"></span>
                        </label>
                    </div>
                    <div class="col-sm-4">
                        article2
                    </div>
                    <div class="col-sm-4">
                        unpublished
                    </div>
                </div>
                <fieldset class="form-group">
                    <button type="submit" class="btn btn-primary">Publish</button>
                </fieldset>
            </form>
        </div>
    </div>
</div>
<script src="//cdn.bootcss.com/jquery/2.2.3/jquery.min.js"></script>
<script src="//cdn.bootcss.com/tether/1.3.2/js/tether.min.js"></script>
<script src="//cdn.bootcss.com/bootstrap/4.0.0-alpha.2/js/bootstrap.min.js"></script>
</body>
</html>

复选框的值是文章的id。

文章:

id   title       content      status     created_at    updated_at
1    article1    ...          0          ...           ...
2    article2    ...          0          ...           ...
3    article3    ...          1          ...           ...

表中有未发表的文章,状态为0, 并且发表文章的状态是1,

我想在提交选中文章的时候改变状态,publish方法怎么写?

public function publish(Request $request)
{

}

如果是单篇,我可以做到。
多篇文章,不知道怎么弄。
请帮忙,
提前致谢。

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    您可以尝试以下简单的方法:

    Article::whereIn('id', $request->input('article'))->update(['published' => 1]);
    

    【讨论】:

    • 我认为 whereIn 第二个参数需要是一个数组,不确定是否可行尝试$request-&gt;input('article')-&gt;toarray()
    猜你喜欢
    • 2016-11-10
    • 2019-11-14
    • 1970-01-01
    • 2020-02-15
    • 1970-01-01
    • 2020-08-16
    • 2017-09-30
    • 2017-10-07
    • 2015-05-01
    相关资源
    最近更新 更多