لاراول

tabesh تغییر authentication drive
@tabesh ٣۰۰۰ تجربه آخرین فعالیت ٣ روز پیش

ما میخواهیم با تعریف یک provider جدید برای session guard و ست کردن آن در فایل config/auth.php، رفتار تابع attempt را طوری تغییر دهیم که هر پسوردی را به عنوان پسورد صحیح کاربر از ما قبول کند و یوزر لاگین شود.

config/auth

'providers' => [
   'users' => [
       'driver' => 'custom',
       'model' => App\User::class,
   ],

بعد این را ساختم customAuthProvider

public function boot()
{
  $this->app['auth']->extend('custom',function()
  {
      return new CustomUserProvider();
  });
}

و داخل CustomUSerProvider

class CustomUserProvider implements UserProvider

و کدم را داخل تابع ها نوشتم

الان این رور رو گرفتم که custom تعریف نشده است چیکار کنم ؟

سلام.

من یه پروژه داشتم که توی اون از شیوه های مختلف و موءثری برای ایجاد دو جهت rtl و ltr و چندین زبان استفاده نمودم. این شیوه ها رو جایی دیگری برای laravel ندیدم برای همین خواستم با شما در میان بذارم ، امید است که مفید باشد.

  • ذخیره زبانها و ترجمه هاشون توی دیتابس.

  • ایجاد دو جهت طوری که از یه تمپلیت استفاده شده باشه و یو آر ال متفاوت باشه.

این شیوه ها هر کدوم فایده های داره که به نوبت شرح داده میشه، در ضمن منتظر نظرات و انتقادات سازنده تون استم، برای بهتر کردن این شیوه ها یا استفاده از راه حل های مناسبتر.


ذخیره زبانها توی دیتابس

فایده ها
  • ممکن بخواهیم بعد از تکمیل پروژه ، زبانهای دیگر و ترجمه های دیگری ایجاد کنیم ، یا ترجمه های موجود رو ویرایش کنیم ، برای همین خیلی بهتره تا زبانها و ترجمه هاشون توی دیتابس ذخیره بشه. و این برای طراحان هم راحت تره بخصوص برای فارسی زبانها ها. حتی اگر ادیتور ها زبان فارسی رو پشتیبانی کنه بازهم در وقت نوشتن متن فارسی توی فایلها به خاطری راست به چپ بودنش به مشکل بر میخوریم.

  • درین روش دوتا TABLE بصورت واضح و روشن در نظر گرفته شده که خیلی راحت میشه زبان افزود یا ترجمه رو ویرایش کرد.

شرح

جدول اولی که موجوده شامل لیست زبانها است.

CREATE TABLE `languages` (
  `language_id` int(11) NOT NULL,
  `name` longtext,
  `db_field` longtext,
  `lan_dir` varchar(100) DEFAULT NULL,
  `align` varchar(100) DEFAULT NULL,
  `dif_align` varchar(100) DEFAULT NULL,
  `status` longtext,
  `img` varchar(150) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `languages` (`language_id`, `name`, `db_field`, `lan_dir`, `align`, `dif_align`, `status`, `img`) VALUES
(1, 'English', 'en', 'ltr', 'left', 'right', 'ok', 'language_list_english.jpg'),
(2, 'Persian', 'fa', 'rtl', 'right', 'left', 'ok', 'language_list_farsi.jpg');

ALTER TABLE `languages`
  ADD PRIMARY KEY (`language_id`);

ALTER TABLE `languages`
  MODIFY `language_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3;
COMMIT;

در جدول زبانها من دوتا Data هم وارد کردم تا بهتر درکش کرد. و ستون های مثل align ، dif_align رو برای استفاده توی css و انداختن باکس ها در جاهای مختلف با تغییر زبان درست کردم، status هم برای نمایش یا عدم نمایش زبان توی View استش.

جدول بعدی برای ذخیره کردن ترجمه ها استش.

CREATE TABLE `translates` (
  `word_id` int(11) NOT NULL,
  `word` longtext,
  `en` varchar(500) DEFAULT NULL,
  `fa` varchar(500) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `translates` (`word_id`, `word`, `en`, `fa`) VALUES
(1, 'Home', 'Home', 'صفحه اصلی'),
(2, 'Who_We_Are', 'Who We Are', 'ما که هستیم'),
(3, 'About_Us', 'About Us', 'در باره ما'),
(4, 'Our_Services', 'Our Services', 'خدمات ما');

ALTER TABLE `translates`
  ADD PRIMARY KEY (`word_id`);

ALTER TABLE `translates`
  MODIFY `word_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5;
COMMIT;

پسوند هر زبان درین جدول به یه ستون تبدیل شده و ترجمه هاش توی اون ستون قرار میگیره. برای استفاده ازین ترجمه ها نیاز بود یه کمک کننده یا helper بسازم.

یک کمک کننده به اسم Translate ساختم که شامل کدهای زیر است.

class Translate {
    public static function translate($word,$locale) {
        $find_word = DB::table('translates')->where('word', $word);
        if($find_word->count() > 0){
            if($find_word->first()->$locale !== null  && $find_word->first()->$locale !== ''){
                $return = $find_word->first()->$locale;
            }
            else{
                $return = ucwords(str_replace('_', ' ', $word));
            }
        }
        else{
            $data['word'] = $word;
            $data['en'] = ucwords(str_replace('_', ' ', $word));
            DB::table('translates')->insert($data);
            $return = ucwords(str_replace('_', ' ', $word));
            $locale = 'en';
        }
        return $return;
    }
}

بعد از صدا زدنش همراه دو پارامتر که یکی کلمه است و دومی زبان برای ترجمه لغات. در صورتی که کلمه صدا زده شده توی دیتابس وجود نداشته باشه این کمک کننده قدرت اینو داره تا اون کلمه رو ایجاد کنه. کلمه ها در View باید به زبان انگلیسی نوشته بشه و عوض Space از Underscore باید استفاده کرد.

برای ایجادhelper از این لینک آموزشی میشه استفاده کرد.بعد از ساخت کمک کننده میریم و یه مشخصه برای صدا زدنش توی config/app.php در قسمت 'aliases' => درست میکنیم. مشخصه که من ساختم اینه Trans یعنی با این کد

{{'{{'}} Trans::translate('Who_We_Are',$locale) }}

میشه توی View یه متنی رو به زبانهای موجود هرچی $locale باشه ترجمه کرد. اینکه $locale چه میتوانه باشه و چه هست اینو توی قسمت دوم مقاله شرح میدم.


ایجاد یو آر ال های جدا گانه برای هر زبان

فایده ها
  • موتور های جستجو قادر به index کردن همه زبانهای موجود در وبسایت میشن.

  • درین روش دیگه نیازی نیست چندین تیمپلیت استفاده نماییم.

  • اگر وبسایت مون Cache هم شود. بازهم قادر به تغییر زبانش استیم. در حالیکه وقتی یک URL باشه Cache جلو تغییر زبان و جهت رو میگیره.

شرح

برای استفاده ازین روش ضرور است هر Route که میسازیم متغییر locale رو هم داشته باشه مثال

Route::get('/{locale}/about','ViewController@about');

بعداً توی کنترولر ازین کدها

public function about($locale='en')
{
    $language = DB::table('languages')->where('db_field', $locale);
    if ($language->count() > 0){
        $data['dir'] = $dir = $language->first()->lan_dir;
        $data['locale'] = $locale = $locale;
        $data['lan_dir'] = $lan_dir = $language->first()->align;
        $data['dif_lan'] = $dif_lan = $language->first()->dif_align;
    }
    else{
        $data['dir'] = $dir =  'ltr';
        $data['locale'] = $locale = 'en';
        $data['lan_dir'] = $lan_dir = 'left';
        $data['dif_lan'] = $dif_lan = 'right';
    }
    return view('about_us')->with($data);
}

استفاده میکنیم، تا ضروریات مون رو برای زبان و جهت مورد نظر از دیتابس بگیریم. بعداً توی View استایل های مختلف رو برای هر جهت که در فولدر های مختلفی موجوده صدا میزنیم، مثلا.

<link rel="stylesheet" type="text/css" href="{{'{{'}} 'assets/'.$dir.'/style.css' }}">

لینک های هم که درست میکنیم باید $locale رو توش داشته باشه، مثلاً.

<a class="nav-link" href="{{'{{'}} URL::to($locale.'/about') }}"> {{'{{'}} Trans::translate('Who_We_Are',$locale) }}</a>

پایان

tabesh ساخت یک کوئری و استفاده and و or کنار یک دیگر
@tabesh ٣۰۰۰ تجربه آخرین فعالیت ٣ روز پیش

سلام من میخوام یک کوئری بنویسم که and و or را در کنار هم داشته باشه مثل این

$users = \App\User::where('type',1)->orWhere('type',2)->orWhere('type',3)->where('name',$name)->where('family',$family)->get();

ولی خب این غلطه

باید کد من این دو تا کد رو یجوری در کنار هم قرار بده و جوین کنه

$users = \App\User::where('type',1)->orWhere('type',2)->orWhere('type',3)->get();

و

 $users = \App\User::where('name',$name)->where('family',$family)->get()

ممنون از راهنماییتون

سلام من یه کد دارم به این صورت

{{'{{'}}isset($catItem) && $catItem->category_name == $category->category_name ?
 $mycat = \Illuminate\Support\Facades\DB::table('categories')->select('category_name')->where('category_id','=',$category->parent_id)->get()
 : $category->category_name }}

وقتی $mycat رو dd میکنم یه خروجی آرایه میده

#items: array:1 [
0 => {#899
  +"category_name": "مادر"
}
  ]

همون کلمه مادر رو چجوری بهش دست پیدا کنم ؟

hadi723456 ساخت یک دسته بندی
@hadi723456 ٢۰۰۰ تجربه آخرین فعالیت ٢ ماه پیش

سلام من میخوام روی سایتم دسته بندی دارای فرزند ایجاد کنم. از یک قسمت دیگه هم تعریف کالا دارم و در آخرم کالاها رو ارتباط بدم به اون دسته مورد نظر.

کاری که تا الان کردم اینه که یه جدول به اسم categories ساختم. و دسته جدید ایجاد کردم. ولی میخوام این دسته ها فرزند داشته باشند و به صورت زیر مجموعه ای نمایش داده بشن و در یک منوی select هم ازش بعدا استفاده کنم تا اختصاصش بدم به یک کالا

کلمه ی انگلیسی English Word

class CategoriesController extends Controller
{
    public function index()
    {
        $categories = Category::all();
        return view('admin_user.dashboard.pishniaz.category.category', compact('categories'))->with(['panel_title' => 'لیست دسته بندی ', 'panel_description' => 'در این قسمت میتوانید لیست دسته بندی را مشاهده کنید، انبار جدید اضافه کنید و یا آن را ویرایش کنید.']);
    }

    public function create()
    {
        return view('admin_user.dashboard.pishniaz.category.category_create')->with(['panel_title' => 'افزودن دسته بندی', 'panel_description' => 'در این قسمت میتوانید اطلاعات دسته خود را اضافه کنید.']);

    }

    public function store(Request $request)
    {
        $this->validate($request, [
            'category_name' => 'required',
        ], [
            'category_name.required' => 'افزودن نام دسته اجباری می باشد',
        ]);

        $new_cat_data = [
            'category_name' => $request->input('category_name'),
        ];

        Category::create($new_cat_data);

        return redirect()->route('admin_user.dashboard.pishniaz.category.category')->with('success', 'دسته جدید با موفقیت ایجاد گردید.');

    }

    public function delete($cat_id)
    {
        if ($cat_id && ctype_digit($cat_id)) {
//            User::destroy($user_id);
            $catItem = Category::find($cat_id);
            if ($catItem && $catItem instanceof Category) {
                $catItem->delete();
                return redirect()->route('admin_user.dashboard.pishniaz.category.category')->with('success', 'دسته مورد نظر  با موفقیت حذف گردید.');
            }
        }
    }

    public function edit($cat_id)
    {
        if ($cat_id && ctype_digit($cat_id)) {
            $catItem = Category::find($cat_id);
            if ($catItem && $catItem instanceof Category) {
                return view('admin_user.dashboard.pishniaz.category.category_edit', compact('catItem'))->with(['panel_title' => 'ویرایش دسته']);
            }
        }

    }

    public function update(Request $request, $cat_id)
    {
        $this->validate($request, [
            'category_name' => 'required',
        ], [
            'category_name.required' => 'افزودن نام دسته اجباری می باشد',
        ]);

        $inputs = [
            'category_name' => request()->input('category_name'),
        ];

        $catItem = Category::find($cat_id);
        $catItem->update($inputs);
        return redirect()->route('admin_user.dashboard.pishniaz.category.category')->with('success', 'دسته مورد نظر  با موفقیت ویرایش گردید.');
    }
}
zahra-sh استفاده از pjax در لاراول
@zahra-sh ۴۸۰۰ تجربه آخرین فعالیت ۶ ماه پیش

سلام. برای استفاده از pjax این اسکریپت ها رو به layout.blade.php اضافه کردم.

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.pjax/2.0.1/jquery.pjax.js"></script>

لینک های قرار داده شده در nav bar که با کلیک کردن روی اونها باید container لود بشه:

<div class="collapse navbar-collapse" id="app-navbar-collapse">
                <ul class="nav navbar-nav navbar-left">
                    <li><a href="/cards">All Cards</a></li>
                    <li><a href="/note/3/edit">Note 3</a></li>
                </ul>
            </div>

و کانتینر رو توی همین صفحه قرار دادم:

<h4>{{'{{'}} time() }}</h4>
    <section class="container" id="pjax-container">
        @yield('content' , 'No Content')
    </section>

و اینم کد جاوا اسکریپت

 $(document).pjax('a', '#pjax-container');

وقتی روی لینک ها کلیک میکنم ارور 500 internal server error میده.

amin1972 مشکل راست چین نشدن ویوها
@amin1972 ٣۵۰۰ تجربه آخرین فعالیت ١ ماه پیش

تگ html بصورت هر دو حالت زیر باعث راست چین شدن صفحه نمیشه و کار نمیکنه:

<html lang="fa-IR" dir="rtl">...</html>
<!-- OR -->
<html lang="fa-IR" style="direction:rtl;">...</html>

نکته :از mdbootstrap استفاده میکنیم.

iman.r بهترین فریم ورک front end برای لاراول
@iman.r ٣۷۰۰ تجربه آخرین فعالیت ۶ روز پیش

سلام دوستان

ممنون میشم کسانی که تجربه کار با لاراول رو دارند راهنمایی کنند که کدوم فریم ورک برای html و css جهت استفاده در لاراول بهتره و چرا؟

من با bootstrap کار کردم اما به شخصه راضی نیستم و می خوام بدونم بقیه مزیتی دارند یا نه

سپاس

با سلام من هنگام نصب لاراول composer global require laravel/installer‍ این کد نوشتم این ارور رو به من داد.

 [ErrorException]                                                             
   file_put_contents(./composer.json): failed to open stream: Permission denied

برای حل این مشکل باید چه کاری انجام بدهم ؟

amin ویدیو جدید لاراول نوا
@amin ٢۵۹۰۰ تجربه نویسنده آخرین فعالیت ۸ ساعت پیش

با سلام و درود به دوستان پارس کلیکی

لینک زیر ویدیو معرفی تکنولوژی جدید لاراول به اسم Laravel Nova هستش که هفته پیش Taylor Otwell معرفیش کرد که یه سیستم مدیریت محتوا یا همون CMS هستش و اینطوری که میگن لاراول با این بسیار بسیار قدرت میگیره و کامل تر میشه لطفاٌ نگاه کنید و نظراتتون رو راجع بهش بگید,آینده لاراول معلوم نیست به کجا داره میره ولی به نظرم خیلی عالی داره پیش میره جلو میشه گفت تا 5 سال آینده هم بهترین فریم ورک php میتونه باشه

لینک ویدیو اینجا

hj021 بررسی سرعت لاراول و پی اچ پی
@hj021 ٢٣۰۰ تجربه آخرین فعالیت ٣ روز پیش

سرعت یا همون (Performance)یکی از مواردی که در انتخاب یک زبان و فریمورک خیلی مطرح میشه. میخواستم از اساتید عزیز درخواست کنم که بیان و در این باره یه توضیحی بدن که آیا این زبان و فریمورک برای طراحی App هایی مثل Snap (یک برنامه تحت اندروید) در ایران یا به عبارت دیگه تاکسی اینترنتی و یا از این قبیل برنامه ها که نیاز به پردازش تراکنش های بالایی دارد قابل استفاده است یا خیر؟ چه فریمورک لاراول و یا پی اچ پی


بین PHP و Scala که یکی از پرسرعت هاست هم یه مقایسه ای بکنید.

nikbakht راه حل های ساخت عضویت ویژه در laravel
@nikbakht ۷۰۰ تجربه آخرین فعالیت ١ هفته پیش

بهترین روش برای کنترل اعضا و اعطای عضویت ویژه ی یک و چند ماهه به اعضا چیست ؟

من در laravel قصد دارم این کار را انجام دهم لطفا لینک های مرتبط را به اشتراک بگذارید

نظر شما در مورد استراتژی عضویت ویژه در مورد سایتی که بازدهی بسیار خوبی دارد چیست؟ آیا عضویت در ازای تعداد دسترسی باشد موردپسند شما قرار میگیرد؟

با تشکر از اطلاعات شما

لینک این محتوا در laracasts

https://laracasts.com/discuss/channels/laravel/how-to-check-roles-time

faridfr نمایش اسامی افراد آنلاین
@faridfr ٢۵۰۰ تجربه آخرین فعالیت ٢ هفته پیش

سلام وقت بخیر من توی وبسایت قبلی خودم که با php pure تهیه شده بود ، وقتی میخواستم افراد آنلاین حاضر در سایت رو ببینم یه کوئری میزدم به تیبل log و افرادی که زیر 1 دقیقه قبل فعالیت داشتن رو میکشیدم بیرون !!!!!!! خیلی مبتدیانه :)

الان توی لاراول چه پیشنهاداتی مطرحه ؟ ممنون

tabesh برگرداندن نام با ajax داخل li
@tabesh ٣۰۰۰ تجربه آخرین فعالیت ٣ روز پیش

سلام دوستان من یک input درست کردم که توش چند حرف قرار میدهم و خودش بصورت ajax میره توی دیتابیس و اسامی شبیه رو پیدا میکنه و برمیگردونه البته در console.log من چی بنویسیم که بصورت html بهم خروجی بده من میخوام بگم به ازای هر اسم یک li درست کن و داخلش قرار بده اسم رو باید چیکار کنم کد کد ها : Route

Route::get('/test','AjaxController@test');
Route::view('/names','names');

controller

   public function test()
    {
        return view('test');
    }

test.blade.php

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>

<input type="text" placeholder="name" id="name">

<ul>
    <li></li>
</ul>

<?php
$url = url('/names');
?>
<script src="/js/app.js"></script>
<script>
    $(document).ready(function () {
        var name = $('#name');
        name.keyup(findnames);
    });

    function findnames() {
        $.ajax({
            url: '<?= $url ?>',
            data: {
                'name': document.getElementById('name').value,
            },
            success: function (json) {
                data = jQuery.parseJSON(json);

                $.each(data, function (key, user) {

                })
            }, error: function () {
                console.log('error');
            }
        });
    }
</script>

</body>
</html>

names.blade.php صفحه ی ajax ها

<?php
$name = $_GET['name'];
if (!empty($name)) {
    $result = [];
    $users = \App\User::where('name', 'LIKE', '%' . $name . '%')->get();

    if ($users) {
        foreach ($users as $key => $value) {

            $result[$key] = $value;

        }
    }

    echo json_encode($result);
}

?>

میشه لطفا دقیقا راهنمایی کنید کجا باید چی بنویسم من هنوز توی ajax راه نیافتادم! با تشکر

من می خوام چندین where بزارم چون تو جدول کاربر ها فیلد های اختیاری وجود دارند اول چک می کنم اگه اون پر شده باشد بعد شرط را برقرار کند واسه همین از query builder ها استفاده کردم و باز انجا هم به موقعی به مشکل بر می خورم که اگر سه تا کاربر در فیلد های مختلف داده پر کنند تواون چند شرط برای همه آنها اجرا می شود ولی من مخوام که هر شرط برای هر کاربر اجرا شود. یعنی وقتی شرط فیلد بالایی ست می شه برای فیلد ها پایینی نیز تاثیر می زاره .اگر بخوام where رو با استفاده از Eloquent ها استفاده کنم باید تو هر شرط همه شو بنویسم که به نظرم خیلی بد می شه.

این هم ساختار کد ها : البته این همه ای شرط ها نیست باید چند شرط دیگر هم اضافه کنم.

switch ($offer_type) {
            case 'none':
                $offer = Offer::query();
                $offer->where('receiver_id', userable_id());
                $offer->where('state', 1);
                $offer->where('offer_time_type', 'none');
                $offer->each(function ($item) use ($offer, $now, $ownerInfo) {
                    if ($item->prev_shop_count !== null && is_integer($item->prev_shop_count)) {
                        $offer->where('prev_shop_count', '<=', $ownerInfo['shop_count']);
                    }
                    if ($item->prev_shop_amount !== null && is_integer($item->prev_shop_amount)) {
//                        $offer->where('prev_shop_amount', '<=', $ownerInfo['cash_amount']);
                    }
                    if ($item->min_shop_amount !== null && is_integer($item->min_shop_amount)) {
//                        $offer->where('min_shop_amount', '<=', $ownerInfo['credit_amount']);
                    }
                });
                return $offer->get()->toArray();
                break;
            case 'range':
                $offer = Offer::query();
                $offer->where('receiver_id', userable_id());
                $offer->where('state', 1);
                $offer->where('offer_time_type', 'range');
                $offer->each(function ($item) use ($offer, $now) {
                    $offer->where(function ($query) use ($item, $now) {
                        $query->whereBetween('date_from', [$item->date_from, $now]);
                        $query->whereBetween('date_untill', [$now, $item->date_untill]);
                    });
                });
                return $offer->get()->toArray();
                break;
            case 'specific':
                $offer = Offer::query();
                $offer->where('receiver_id', userable_id());
                $offer->where('state', 1);
                $offer->where('offer_time_type', 'specific');
                $offer->each(function ($item) use ($offer) {
                    $isToday = \Carbon\Carbon::parse($item->date)->isToday();
                    if ($isToday) {
                        $offer->whereDate('date', $item->date);
                        $getOffers[] = $offer->get()->toArray();
                    }
                });
                return $offer->get()->toArray();
                break;
            case 'custome':
                $offer = Offer::query();
                $offer->where('receiver_id', userable_id());
                $offer->where('state', 1);
                $offer->where('offer_time_type', 'custome');
                $offer->each(function ($item) use ($offer) {
                    $carbon = \Carbon\Carbon::now();
                    if ($item->custome_time == 'once_a_week') {
                        $day = $carbon->dayOfWeek + 1;
                        $offer->where('once_a_week', $carbon->dayOfWeek);
                    } elseif ($item->custome_time == 'once_a_month') {
                        $dayOfMonth = (int)date('d');
                        $offer->orWhere('once_a_month', $dayOfMonth);
                    }
                });
                return $offer->get()->toArray();
                break;
            default:
                return [];
        }

به کمک دستور npm install mdbootstrap پکیج UI مورد نظرم رو در مسیر پروژه لاراول نصب کرده ام.

چطور میتونم در View ها ازش استفاده کنم؟ آیا باید دستور خاصی در blade ها یا sass ها یا javascript ها بدم یا خودکار شناخته میشه؟

توجه: از CDN و یا فایل local استفاده نکرده ام و فقط دستور ذکر شده رو در ترمینال وارد کرده ام.

jserver کار بر روی پروژه آپلود شده روی سرور
@jserver ۴۵۰۰ تجربه آخرین فعالیت ٢ ماه پیش

با سلام خسته نباشید

من چطوری میتونم همزمان روی یک پروژه که روی سرور در حال اجراست کار کنم و بخش های که اضافه کنم و بدون دخالت روی پروژه اصلی .همان طور که میدانید در گیت برای مدیریت بخش ها از شاخه ها استفاده می شود و روی هر کدام از شاخه باشم یعنی (checkout شده) تغییرات اون رو نمایش می شود ولی من می خواهم در حالت development باشم و کار کنم تغییرات را مشاهده کنم و کاربرانی که از سایت دیدن می کنند از روی شاخه master باشد

قصد استفاده از پکیج زیر از سایت github در پروژه تازه لاراول خود را داشتیم. گام به گام باتوجه به لینک پیش رفتیم اما در مرحله دستور migrate به خطا برخورد کردیم.

نکته: همین حالا بدون اجرای دستور migrate وبسایت خطا میدهد.

خطا:

Undefined index: PragmaRX\Tracker\Vendor\Laravel\Models\Session

لینک github : https://github.com/antonioribeiro/tracker#requirements

تنها گامی که در درست بودن ش شک داریم قطعه کد زیر است (config/database.php):

'mysql' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'strict' => true,
            'engine' => null,
       ],
        'tracker' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'strict' => false,
            'engine' => null,
        ],

نکته: علاقه مند بودیم که تنها یک دیتابیس داشته باشیم (همان اطلاعات وارد شده در فایل .env)

alireza_mandegari یادگیری فریم ورک لاراول
@alireza_mandegari ٢۵۰۰ تجربه آخرین فعالیت ٢ هفته پیش

با سلام , میخواستم بپرسم من دانشی مختصری از زبان PHP دارم ایا میتونم الان به یادگیری فریم ورک محبوب ان یعنی لاراول بپردازم؟ یا نه باید زبان PHP رو به طور کامل یاد بگیرم و بعد به سراغ فریم ورک ان بروم؟

با تشکر.

jserver انتخاب کردن در دو بازه زمانی خاص
@jserver ۴۵۰۰ تجربه آخرین فعالیت ٢ ماه پیش

سوال اول

من یه سیستمی دارم که به کاربر ها کد تخفیف می ده ولی می خوام کد تخفیف در بازه زمانی خاصی باشد یعنی از تاریخ 2018-09-10 تا 15-09-2018 و بعد اون غیر فعال شود یعنی تو دستور Select من نیاید من برای مدیریت آن تو جدول های دو فیلد موقع ایجاد گذاشتم date_to date_from که تاریخ رو مدیر انتخاب کند.

یک نکته ای هم اشاره کنم من از دستور Between استفاده کردم اما کار نکرد اون هم به دلیل که نمی خوام از جدول از بازه زمانی خاص تا بازه زمانی دیگر انتخاب کنم بلکه می خوتم الان چک کنم بکه الان آن بازه زمانی خاص است

سوال دوم

اگر بخوام تو لارول از چندین where استفاده کنم یعنی بیش از 10 شرط بهترین روش چی می تونه باشه در اینجا از Query Builder ها استفاده کردم

$user=User::query();

if(is_condition) {
    $user->where('name','ali')
}
if(is_condition) {
    $user->orWhere('name','ali')
}
$user->get();
tabesh تگ کردن کاربر با استفاده از @
@tabesh ٣۰۰۰ تجربه آخرین فعالیت ٣ روز پیش

دوستان عزیز من میخوام یک سایت با لاراول داشته باشم فقط یک قسمت هایی از آن مثل سرچ کردن یا مثل تگ کردن افراد میخوام بصورت realtime باشه

یعنی @t را که میزنم تمام یوزر هایی که با t شروع میشوند یا t داخلشون هست را بیارم باید همه ویو را یاد بگیرم یا اینکه فقط قسمت های خاص آن لازم است

من اصلا نمیخوام با ویو سایت بسازم فقط با لاراول کار میکنم ولی ajax ها رو میخوام با ویو انجام بدم

میشه راهنمایی بفرمایید

amin1972 طراحی دیتابیس بازی شطرنج آنلاین
@amin1972 ٣۵۰۰ تجربه آخرین فعالیت ١ ماه پیش

قصد طراحی دیتابیس برای نرم افزار تحت وب با لاراول داریم. این نرم افزار یک بازی شطرنج آنلاین میان دو شخص از دو مکان مختلف جهان است که میتواند رایگان یا بر سر پول بازی شود.

طرح من برای دیتابیس این نرم افزار:

player
    player_id
    player_name
    player_email
    player_credit
    player_password
    player_win_count
    player_draw_count
    player_loss_count
    player_rate
    player_gender
    player_birth_day
    player_country
    player_city
    player_phone

match
    match_id
    match_date
    match_cost
    match_color
    player_opponent_id

payment
    payment_id
    payment_date
    payment_cost
    payment_status

پیشنهاد بهتری دارید که این طراحی در کامل ترین حالت باشد ضمن رعایت اصول نرمال سازی و...؟ و اینکه کدام فیلد ها را کلید اصلی و خارجی باید بگیریم؟

nikbakht تگ گذاری مطالب در لاراول
@nikbakht ۷۰۰ تجربه آخرین فعالیت ١ هفته پیش

روی یک پروژه لارول برای قسمت های مختلف مثلا وبلاگ و آموزش های تخصصی قصد دارم تگ گذاری یا دقیق تر سیستم تگ گذاری قرار بدم. و طبعا تگ های انتهای هر مقاله Route های ساخته شده ای دارد که دارای Template این چنینی هستند

www.yoursite.com/tag/yourTag

من در جستجویی که انجام دادم به مواردی همچون laravel-tagging و یا laravel-tags رسیدم

سوال اینکه طبق اطلاعات و تجربه شما از چه پکیجی استفاده کنم؟ و همچنین منابعی رو که میشناسید لطفا معرفی کنید

متشکرم

kavosi درک عمیق لاراول
@kavosi ۶۰۰ تجربه آخرین فعالیت ٢ ماه پیش

من چند ماهه که دارم لاراول کار میکنم و بنظرم یه موضوعی هست که تابحال جایی ندیدم دربارش بحث بشه اونهم درک عمیق لاراوله.

به عنوان مثال من اکثر برنامه نویسای لاراولی که دیدم واسه ساخت رجیستر و لاگین برا وبسایتشون از لاراول استفاده نمیکنن چون نمیتونن شخصی سازیش کنن (یعنی درواقع درکش نکردن و فقط بلدن کد بزننن ، خودمم دارم این مشکلو). بحثم اینه شما یه دوره یا مقاله های مختلف درمورد درک عمیق لاراول بسازی مثلا این کلاس چیکا میکنه( کلاس های خیلی تو در تو ) ، چرا لاراول از این سبک استفاده کرده ، اصول حرفه ای کد زدنی که داخلش رعایت شده ، و ..... چون واقعا من خیلی از فایلهایی که تو پوشه های این فریمورک میبینمو نمیفهمم و فهمیدنش بنظرم قدرت کد زدن و دید برنامه نویسی رو خیلی تغییر میده.

بنظرم این موضوع میتونه خیلی کمک کنه به برنامه نویسا که فقط یه چیزیو بلد نباشن ، درواقع اونو بفهمن.

تشکر

لاراول برای صفحه بندی مطالب بطور پیشفرض آدرس URL رو بصورت کوئری استرینگ معمولی در میاره یعنی به این شکل : myproject/public/paginate?page=1 که این برای سئو مناسب نیست

ساده ترین راهکار تغییر این شکل از آدرس دهی در صفحه بندی لاراول چیه

میخوام آدرس URL به این شکل در بیاد :

myproject/public/paginate/page/1 که از بابت سئو مشکلی نداشته باشه

ممنون میشم راهنمایی کنید