Laravel将帖子重定向到localhost

时间:2016-03-15 09:36:08

标签: php laravel routing

我正在使用Laravel 5并从Laravel网站开始快速入门。 如果我使用代码中的post函数,它会重定向到localhost / LOCATION 而不是localhost / PROJECT / public / LOCATION。

这可能是我配置中的内容,但我无法弄清楚它是什么。

这是我的路由器中的代码,它似乎是后期任务功能中的一个问题。

<?php

use App\Task;
use Illuminate\Http\Request;

Route::group(['middleware' => ['web']], function () {
    /**
     * Show Task Dashboard
     */
    Route::get('/', function () {
        return view('tasks', [
            'tasks' => Task::orderBy('created_at', 'asc')->get()
        ]);
    });

    /**
     * Add New Task
     */
    Route::post('/task', function (Request $request) {
        $validator = Validator::make($request->all(), [
            'name' => 'required|max:255',
        ]);

        if ($validator->fails()) {
            return redirect('/')
                ->withInput()
                ->withErrors($validator);
        }

        $task = new Task;
        $task->name = $request->name;
        $task->save();

        return redirect('/');
    });

    /**
     * Delete Task
     */
    Route::delete('/task/{id}', function ($id) {
        Task::findOrFail($id)->delete();

        return redirect('/');
    });
});

使用此代码我发布到路线

<form action="/task" method="POST" class="form-horizontal">
    {{ csrf_field() }}

    <!-- Task Name -->
    <div class="form-group">
        <label for="task-name" class="col-sm-3 control-label">Task</label>

        <div class="col-sm-6">
            <input type="text" name="name" id="task-name" class="form-control" value="{{ old('task') }}">
        </div>
    </div>

    <!-- Add Task Button -->
    <div class="form-group">
        <div class="col-sm-offset-3 col-sm-6">
            <button type="submit" class="btn btn-default">
                <i class="fa fa-btn fa-plus"></i>Add Task
            </button>
        </div>
    </div>
</form>

UPDATE 如果我将表单操作更改为&#34; / quickstart / public / task&#34;如果我没记错的话,/ task应该在laravel中自动重定向到它

3 个答案:

答案 0 :(得分:2)

您可以为路线命名(请查看https://laravel.com/docs/5.2/routing#named-routes

并在表单操作中调用它

<form action = "{{ route('name_of_my_route') }}"

答案 1 :(得分:2)

你可以使用laravel helper函数。更多https://laravel.com/docs/5.2/helpers#urls

我的建议是你使用url(),如

<form action = "{{ url('task') }}">

答案 2 :(得分:1)

您的网络服务器配置错误。您应该将data()目录设置为根目录。

public地址错误,localhost/PROJECT/public/LOCATION是正确的地址。

例如,如果您正在使用Apache:

localhost/LOCATION
相关问题