在数组laravel上调用成员函数save()

时间:2017-01-08 11:56:26

标签: php arrays laravel

我在做更新方法。当我尝试更新特定数据时,即时收到此错误"调用数组"上的成员函数save()。为什么?我的代码中是否缺少某些内容?

我也试过print_r $ result变量,它有一个值..

查看

@extends('dashboard')
@section('content')

<br><br>
<div class="x_content">
  <table class="table table-hover">
     <thead>
      <tr>
        <th>#</th>
        <th>Text Header</th>
        <th>Text Description</th>
        <th>Action</th>
        <th>Updated At</th>
        <th>Created At</th>
      </tr>
    </thead>
    <tbody>
      @foreach($data as $text)
      <tr>
        <th scope="row">{{ $text->id }}</th>
        <td>{{ $text->text_header}}</td>
        <td>{!! nl2br(e($text->text_description)) !!}</td>
        <td><button class = "btn btn-info btn-md" data-toggle="modal" data-target="#myModal-{{$text->id}}"><i class="fa fa-pencil-square-o" aria-hidden="true"></i> Edit</button></td>
        <div class="modal fade" id="myModal-{{$text->id}}" tabindex="-1" role="dialog" aria-labelledby="titleLabel">
          <div class="modal-dialog" role="document">
            <div class="modal-content">
              <div class="modal-header modal-header-success">
                <button type="button" class="close btn btn-primary" data-dismiss="modal" aria-label="Close">
                <span aria-hidden="true">&times;</span></button>
                <h4 class="modal-title" id="titleLabel">New Content</h4>
              </div>
              <div class="modal-body">
                <div class="row">
                  <div class ="col-md-2 col-lg-7">
                    <div style="display: inline">
                      <div class="form-group">
                          <form action="{{ url('updateText/'.$text->id) }}" enctype="multipart/form-data" method="POST">
                           {{ csrf_field() }}
                          <label>Title Header</label>
                          <input type= "text" name = "title_header"value =" {{ $text->text_header}}" class = "form-control"></input>
                      </div>
                    </div>
                    <div class ="col-md-4 col-lg-9">
                      <div class="form-group">
                          <label>Title Description</label>
                          <textarea style="resize:none"> {{ $text->text_description}}</textarea>
                      </div>
                    </div>
                  </div>
                </div>
              </div>
              <div class="modal-footer">
                <button type="button" class="btn btn-danger" data-dismiss="modal">Close</button>&nbsp;
                <span class="pull-right">
                   <button type="submit" class="btn btn-success">Update</button>
                </span>
              </form>
              </div>
            </div>
          </div>
        </div>
        <td>{{ $text->updated_at}}</td>
        <td>{{ $text->created_at}}</td>

      </tr>

      @endforeach
      {{ $data->links() }}

    </tbody>
  </table>
</div>
@stop

控制器

public function updateText(Request $request, $id)
{

    $result = $request->all();
    $test = $result->save();
    print_r($test);die;

    Session::flash('flash_message', 'Task successfully added!');

    return redirect()->back();
}

路线

Route::post('updateText/{id}','AdministratorController@updateText');

3 个答案:

答案 0 :(得分:2)

public function updateText(Request $request, $id)
{
    $result = YourModel::find($id);
    $result->your_column_1 = $request->your_value_1;
    $result->your_column_2 = $request->your_value_2;
    $result->your_column_3 = $request->your_value_3;
    $result->your_column_4 = $request->your_value_4;
    .
    .
    .
    $result->your_column_n = $request->your_value_n;

    if($result->save()){
        Session::flash('flash_message', 'Task successfully added!');
    }else{
        Session::flash('flash_message', 'Task failed!');
    }

    return redirect()->back();
}

这种方式可以帮到你。

答案 1 :(得分:1)

要使用save()方法,您需要获取一个对象:

$result = Model::find($id);
$result->name = 'John';
$test = $result->save();

答案 2 :(得分:0)

问:问。为什么返回此消息-> Call to a member function save() on array laravel 答:首先,您检查表中的$id值是否存在。

如果未在表中找到此主$id值,则返回此消息。

如果主要的$id值可用,则可以通过两种方式保存

    $data = Model::find($id);
    $data->name = 'Bulbul';
    $result = $data->save();
    //OR 
    $data = Model::find($id);
    $data['name'] = 'Bulbul';
    $result= $result->save();