Laravel: SQLSTATE [42000]: синтаксическая ошибка или нарушение прав доступа: 1064 В синтаксисе SQL есть ошибка; - PullRequest
0 голосов
/ 12 октября 2019

У меня есть простое приложение crud с одним входом, post title

Вот таблица сообщений

Таблица сообщений

id  title
1   sdss
2   pani

Вот моя функция обновления впост-контроллер

public function update(Request $request, $id)
{
    $post = Post::find($id);
    $post->$request = $request->get('title');
    $post->save();

    return redirect("/posts")->with("success", "Data updated");
}

Вот моя модель

class Post extends Model
{
    protected $fillable =["title"];
}

Вот HTML

@section('content')
  <div class="content">
    <div class="container-fluid">
      <div class="row">
        <div class="col-md-12">

          <form method="post" action="{{ route('posts.update', $post->id) }}" class="form-horizontal">
            @csrf
            @method('PATCH') 

            <div class="card ">
              <div class="card-header card-header-primary">
                <h4 class="card-title">{{ __('Edit Page Details') }}</h4>
                <p class="card-category"></p>
              </div>
              <div class="card-body ">
                <div class="row">
                  <div class="col-md-12 text-right">
                      <a href="{{ route('posts.index')}}" class="btn btn-sm btn-primary">{{ __('Back to list') }}</a>
                  </div>
                </div>
                <div class="row">
                  <label class="col-sm-2 col-form-label">{{ __(' Title') }}</label>
                  <div class="col-sm-7">
                        <div class="form-group">    

                        <input type="text" class="form-control" name="title" value="{{$post->title}}"/>
                        </div>
                  </div>
                </div>

              </div>
              <div class="card-footer ml-auto mr-auto">
                <button type="submit" class="btn btn-primary">{{ __('Save') }}</button>
              </div>
            </div>
          </form>
        </div>
      </div>
    </div>
  </div>
@endsection

Теперь, когда я нажимаю кнопку Сохранить, чтобы обновить данные, я получаю следующую ошибку

SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the 
manual that corresponds to your MariaDB server version for the right syntax to use near '.`8,
application/signed-exchange;v=b3 Accept-Encoding: gzip, deflate, 
' at line 1 (SQL: update `posts` set `PATCH /posts/2 HTTP/1`.`1 Accept:

Я новичок в Laravel

Что мне нужно сделать, чтобы решить эту проблему?

1 Ответ

2 голосов
/ 12 октября 2019

Если вы хотите обновить заголовок, разве он не должен быть таким?

$post->title = $request->get('title');

вместо

$post->$request = $request->get('title');

Модель поста не имеет атрибута с именем $request

PS: свойство $fillable не имеет значения, поскольку вы не выполняете массовое назначение

Надеюсь, это поможет

...