路线[profile.store]未定义

时间:2019-05-24 11:05:51

标签: laravel laravel-5

我的表单标签是

Auth::routes();
Route::view('/','welcome');
Route::get('/home', 'HomeController@index')->name('home');
Route::get('/profile','ProfileController@index');
Route::get('/profile/add','ProfileController@create');

和我的web.php文件都有

public function save(Request $request){
    print_r($request);
}

我的ProfileController具有存储功能

    <bean id="myDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
          destroy-method="close">
        <property name="driverClass" value="com.mysql.cj.jdbc.Driver" />
        <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/customer_tracker?useSSL=false&amp;serverTimezone=UTC" />
        <property name="user" value="root" />
        <property name="password" value="root" /> 

        <!-- these are connection pool properties for C3P0 -->
        <property name="minPoolSize" value="3" />
        <property name="maxPoolSize" value="10" />
        <property name="maxIdleTime" value="30000" />
    </bean>  

    <!-- Step 2: Setup Hibernate session factory -->
    <bean id="sessionFactory"
        class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
        <property name="dataSource" ref="myDataSource" />
        <property name="packagesToScan" value="com.springdemo.entity" />
        <property name="hibernateProperties">
           <props>
              <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
              <prop key="hibernate.show_sql">true</prop>
           </props>
        </property>
   </bean>

3 个答案:

答案 0 :(得分:1)

首先,您在ProfileController中没有store方法,而是使用save方法。因此,您可以这样做。

在web.php中为保存方法创建新路径

Route::post('profile/save', ProfileController@save)->name('profile.store');

然后,您的最终代码将是:

您认为:

<form action="<?php echo route('profile.store'); ?>" method="post">
<input type="hidden" name="_token" id="csrf-token" value="<?php echo csrf_token(); ?>" />

在您的控制器中:

public function save(Request $request){
print_r($request);
}

在您的web.php中

Route::post('profile/save', ProfileController@save)->name('profile.store');

答案 1 :(得分:1)

首先,您需要在web.php中定义路由,其次,您需要将路由命名为profile.store。

https://laravel.com/docs/master/routing#named-routes

如果您使用资源功能,则路由已被命名。

https://laravel.com/docs/5.0/controllers#restful-resource-controllers

您可以使用php artisan命令查看可用路由列表。

php artisan route:list

有关此命令的更多帮助: http://laravel-school.com/posts/laravel-php-artisan-route-list-command-9

答案 2 :(得分:0)

您没有名为route的{​​{1}}。

尝试从以下位置更改表单标签

profile.store

对此

route('profile.store');

注意:我假设您有该路线(因为您未在问题中显示该路线) action('ProfileController@store');