簡體   English   中英

無法在Laravel上調用函數

[英]Can't call a function on Laravel

我正在嘗試在Laravel上使用BootForm創建一個表單。 這是PostsController中函數的內容。

 public function update($id,$request)
{
    //
    $post =findOrFail($id);
    $post->update($request->all());
    redirect(route('news'));
}

該視圖是以下代碼:

    @extends ('layouts.app')

@section ('content')

    <h1>Edit</h1>

    {!! BootForm::openHorizontal (['url' => 'user', 'sm' => [2, 5], 'lg' => [2, 5], 'method'=> 'put']) !!}

    {!! BootForm::text('Titre', $post->title) !!}

    {!! BootForm::text('Slug', $post->slug) !!}

    {!! BootForm::textarea('Contenu', $post->content) !!}

    <p> <a class="btn btn-primary" href="{{route('news.update', $post) }}">Editer</a></p>

    {!! BootForm::close() !!}

@stop

也有我正在使用的路線:

Route::resource('news', 'PostsController');

因此,當我單擊按鈕時,它會將我重定向到主目錄(localhost:8000)。 控制器中的功能未調用。 不過,該職位沒有任何變化。 問題出在更新功能上。 我會錯過什么嗎? 歡迎提供一些提示或幫助。

請替換為您的功能

public function update($id)
{
  $post = Post::findOrFail($id);

  $post->update(request()->all());

  return redirect(route('news.index'));
}

並以此替換您的觀點。

@extends('layouts.app')

@section('content')

  <h1>Edit</h1>

  <?php $formOptions = [
    'url' => 'user',
    'sm' => [2, 5],
    'lg' => [2, 5],
    'method'=> 'put'
  ]; ?>

  {!! BootForm::openHorizontal($formOptions)->action(route('news.update', $post)) !!}
  <input type="hidden" name="_method" value="PUT">
  {!! BootForm::text('Titre', $post->title) !!}
  {!! BootForm::text('Slug', $post->slug) !!}
  {!! BootForm::textarea('Contenu', $post->content) !!}
  {!! BootForm::submit('Editer') !!}
  {!! BootForm::close() !!}

@stop

我不確定這些選項中的url是什么,但是我仍然添加了它,因為您也...不使用<a href="....">...</a>而是使用{!! BootForm::submit() !!} {!! BootForm::submit() !!}

讓我知道您是否還有其他問題。

嘗試這樣的命名路由:

Route::resource('news' ['uses' => 'UpdatesController@news', as 'updateNews']);

然后在UpdatesController類中,添加以下內容:

namespace App\Http\Controllers;
use App\Http\Controllers\controller;

class UpdateController extends Controller
{
    public news() {
        //your logics for updating here
    }
}

如果news()代碼正確,那么http://localhost:8000/news/現在應該返回所需的視圖。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM